我从文件中读取了一个由两个单词组成的字符串,使用分隔符将它们分开,并希望将它们与我的输入进行比较。第一次比较正常工作,但第二次不行。打印语句输出相同的内容,但检查失败。我猜测这是由于特殊的换行符造成的。
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");
}
}
编辑:我的第二个token中有一个 \n字符,使用下面代码修剪字符串可以解决:
void strip(char *s) {
char *p2 = s;
while(*s != '\0') {
if(*s != '\t' && *s != '\n') {
*p2++ = *s++;
} else {
++s;
}
}
*p2 = '\0';
}