【发布时间】:2017-10-20 20:36:36
【问题描述】:
我有带字符串的文件。每个字符串都在新行上。现在我需要比较 argv[1] 是否与任何这些字符串的第一个字符相同。我是 C 新手,我不确定我是否使用了正确的函数
代码如下:
int main(int argc, char *argv[]) {
char character[100][100];
int i = 0;
int result;
while((fgets(character, 100, stdin) != NULL) && (i < 100)){
fputs(character, stdout);
if(character[0] == argv[1]){
printf("Yes");
}
result = strcmp(character[0], argv[1]);
if(result == 0){
printf("TRUE");
}
i++;
}
return 0;
}
【问题讨论】:
-
你试过了吗?
-
argv[1]不是char,而是char *,所以您需要将character[0]与argv[1][0]进行比较。 -
@LeeDanielCrocker 好吧,
character更适合命名为lines... 这说明问题了吗? [提示 OP:注意名称,它们对于理解代码很重要。] -
哎呀,你是对的,这也是一个数组,所以你不能将
character传递给fgets,你应该fgets(character[x],...),然后比较character[x][0]和@987654333 @。如果要比较整个字符串,请使用strcmp()。 -
@Lee Refgets:反过来,这也是真的。