所以我正在努力学习c但是我无法弄清楚为什么这段代码不会正常运行。
#include <stdio.h>
#include <stdlib.h>
int main()
{
char userName[25];
char myName[25] = "myName";
printf("Please enter your name: \n");
scanf("%s", userName);
if(userName == myName)
{
printf("Congratulations your name is myName!!!");
}
else
{
printf("Your name is %s how disappointing...", userName);
}
return 0;
}
问题是if语句似乎永远不会返回true。 任何人都可以帮我这个吗?
答案 0 :(得分:3)
这一行比较了不同字符串的 locations ,因为你要比较两个不同的字符串。
if(userName == myName)
C中的正确测试是使用库函数。
#include <string.h>
...
if(strcmp(userName,myName) == 0)
答案 1 :(得分:1)
答案 2 :(得分:1)
你无法比较那样的字符串。你正在做的是比较指向各自叮咬的指针(明显不同)。 所以,
userName == myName
在这里不起作用。您可以使用字符串函数来比较两个字符串。
答案 3 :(得分:0)
声明if(userName == myName)
将无法按照您期望的方式运行。使用strcmp()
函数比较两个字符串。
答案 4 :(得分:0)
使用strcmp / strncmp
中声明的string.h
来比较字符串;在程序中,您要比较的值(转换后)是指针值。