トークンで分割した 2 つの単語で構成されるファイルから文字列を読み取り、入力と比較したいと考えています。最初の比較は正常に機能しますが、2 番目の比較は機能しません。print ステートメントは同じことを出力しますが、チェックは失敗します。特殊な行末文字が原因だと思います。
if(strcmp(argv[2], token[0]) == 0){
printf("Input1 match\n");
printf("%s\n", argv[3]);
printf("%s\n", token[1]);
if(strcmp(argv[3], token[1]) == 0)
{
printf("Input2 match\n");
}
}
編集:2番目のトークンに \n 文字があり、このコードを使用して文字列をトリミングすると修正されます
void strip(char *s) {
char *p2 = s;
while(*s != '\0') {
if(*s != '\t' && *s != '\n') {
*p2++ = *s++;
} else {
++s;
}
}
*p2 = '\0';
}