我对编程完全陌生。
我只想输入 Dave,然后它应该显示“祝你有美好的一天”
所以我这样写:
{
char str[100];
printf("\nwhat is your name?\n");
scanf("%s",str);
if (str="Dave")
{
printf("\nhave a nice day\n");
}
}
最终,它什么也没有显示。它出什么问题了?
我对编程完全陌生。
我只想输入 Dave,然后它应该显示“祝你有美好的一天”
所以我这样写:
{
char str[100];
printf("\nwhat is your name?\n");
scanf("%s",str);
if (str="Dave")
{
printf("\nhave a nice day\n");
}
}
最终,它什么也没有显示。它出什么问题了?
您的代码正在分配str
指向字符串字面量"Dave"
。我猜你的意思是比较(使用==
)?这也将失败,比较两个char
数组的地址。在 C 中,您应该使用strcmp来比较字符串
if (strcmp(str, "Dave") == 0)
字符串比较需要一个库函数。代替
if (str="Dave")
和
if(strcmp(str, "Dave") == 0)
一开始,包括
#include<string.h>
c中的字符串比较可以通过strcmp()
from来完成#include <string.h>
if (strcmp(str,"Dave")==0)
{
printf("\nhave a nice day\n");
}