c - 在 C 中,两个相同的链并不将自己标识为相等

标签 c string char

我有两个字符串,一个包含文件的第一行(“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/

相关文章:

c++ - 将 Char* 与 String 和运算符进行比较

c - H.264 1080p 编码

c - 作业,在 C 结构体中分配指针

c - 从C中的字符串中删除空格

string - 构建 URL 字符串

.net - 为什么 boolean 值比字符消耗更多的内存?

C 代码 结果 说明

python - 如何查找与CPython堆栈框架的执行相关的C堆栈指针

json - 将 Typescript 类转换为字符串,使用 getter 和 setter 而不是私有(private)变量

c++ - 我是否从 "const char *"正确转换为 "TCHAR*"?