我有两个字符串,一个包含文件的第一行(“WORKING”),第二个包含单词“WORKING”。问题是,当我尝试将它们放入 IF 中时,它说它们不一样!
我尝试使用 printf 命令读取它们,但它们是相同的。我还尝试在第二个字符串中使用“\n”,但没有任何变化。
这是代码,请看一下:
FILE *fl;
fl=fopen("test.txt", "r");
char line_working[100];
fscanf(fl, "%s\n", line_working);
fclose(fl);
printf("%s", line_working); //HERE IT PRINTS: WORKING
char* workinger="WORKING";
printf("\n%s", workinger); //HERE IT ALSO PRINTS: WORKING
getch();
if(workinger==line_working){
printf("OK");
getch();
}
什么也没发生...
最佳答案
if(workinger==line_working){
比较指针。
workinger
是一个指针,表达式(比较)中使用的数组 line_working
被转换为指向其第一个元素的指针,该指针等于 &line_working [0]
。所以它确实解决了比较问题。但这不是你想要的。不幸的是,这种比较在 C 中完全有效。因此编译器在这里无法为您提供帮助。
使用strcmp()
比较 C 字符串。
关于c - 在 C 中,两个相同的链并不将自己标识为相等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31290040/