我对编程完全陌生。如果语句带字符串
我只需要输入戴夫的话,就应显示“有一个愉快的一天”
所以我把它写在这样:
{
char str[100];
printf("\nwhat is your name?\n");
scanf("%s",str);
if (str="Dave")
{
printf("\nhave a nice day\n");
}
}
最终,它说明不了什么。它出什么问题了?
我对编程完全陌生。如果语句带字符串
我只需要输入戴夫的话,就应显示“有一个愉快的一天”
所以我把它写在这样:
{
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)
字符串比较可以通过strcmp()
从#include <string.h>
if (strcmp(str,"Dave")==0)
{
printf("\nhave a nice day\n");
}
字符串比较来实现需要的库函数。更换
if (str="Dave")
与
if(strcmp(str, "Dave") == 0)
,并在年初,包括
#include<string.h>
'#include
#include
首先,你指定你不比较(=的==代替),第二你不能比较==操作符字符串(对于指针你比较地址,而不是内容) – 2013-03-07 08:26:13
@ShashankKadne没有,他不 – SomeWittyUsername 2013-03-07 08:26:39
@Dugarry我会强烈建议你学会如何阵列的指针工作,ATT之前使用字符串处理,因为C中的字符串处理严重依赖于数组和指针。 (为什么C可能不适合初学程序员的理由之一,就我个人而言,我会推荐Java作为第一编程语言) – Lundin 2013-03-07 08:29:59