#include <stdio.h>
int main()
{
char a[]=("hello");
char b[10];
printf("enter value: ");
scanf("%s",b);
if(b==a){
printf("%s",a);
}
return 0;
}
当我运行这段代码时,它显示我'输入值',但当我输入'hello'等于变量'a'时,它没有显示if语句。
==
将检查a
和b
是指向内存中相同字符串的指针,但它们不是。比较内容对于这些字符串,您可以使用strcmp
:
if (strcmp(a, b) == 0) {
printf("%s", a);
}
如果您希望scanf
使用一行输入,则写入scanf("%sn",b);
。
另一点是,您希望比较缓冲区内容,而不是指针。在if()
子句中使用strcmp
函数