我无法读取第二个字符串,无论我插入多少个 getchar

I can't read the second string, no matter how many getchar i insert

这个程序需要读取两个字符串,这两个字符串将被传递给 "confirm" 函数,它们将被读取并且函数必须找到一个共同的词。

但主要是我无法读取 "string2" 字符串!不管我插入多少个getchar。

#include <stdio.h>
#include <string.h>

void confirm(char string1[],char string2[]){

    char word[20];
    char w_aux[20];
    int i, j, k, l, m;
    int len1, len2;
    int find;

    i = 0; 

    len1 = strlen(string1);
    len2 = strlen(string2);

    while (i < len1){
        j = 0;

        while ((string1[i] != ' ') && (i < len1)){
            word[j] = string1[i];
            i++;
            j++;
        }
        word[j] = '[=10=]';
        k = 0;
        find = 0;
        while((k < len2) && (find == 0)){ 

            l = 0;
            while ((string2[k] != ' ') && (k < len2)){
                w_aux[l] = string2[k];
                k++;
                l++;
            }
            w_aux[l] = '[=10=]';        
            if (j == l){
                m = 0;
                while((word[m] == w_aux[m]) && (m<j)){
                    m++;
                }
                if (m == j){
                    find = 1;
                }
            }
            k++;
        }
        i++;
    }
    printf("%s\n", word);
}

int main (){

    char string1[20];
    char string2[20];

    printf("Type the first text: \n");
    scanf("%[^\n]s", string1);

    printf("Type the second text: \n");
    scanf("%[^\n]s", string2);
    getchar();


    confirm(string1, string2);

    return 0;
}

输入字符串 1 后使用 getchar for \n:

printf("Type the first text: \n");
scanf("%[^\n]", string1);

getchar(); //here

printf("Type the second text: \n");
scanf("%[^\n]", string2);

只需将格式说明符更改为 "%19[^\n]*c",它会去掉结尾的 '\n' 字符。