如何解决如何根据输入打印不同的字符串?
如果输入名称 Emily 或 Jack ,并且要输入另一条消息,我希望显示一条消息。
我的代码:
#include <stdio.h>
#include <string.h>
int main()
{
char name;
printf("What is your name?");
gets(name);
if ((strcmp(name,"Emily") == 0) || (strcmp(name,"Jack") == 0))
{
printf("Hello %s\n",name);
} else
{
printf("Welcome Stranger!\n");
}
return 0;
}
解决方法
第一个问题是name
可以只存储一个char
,要存储一个字符串,则需要一个char
数组。
第二个问题不是引起错误的行为,但同样重要的是使用gets
。此功能在 C99 中已弃用,并已在 C11 中从国际标准中删除。由于充分的理由,此功能非常危险,因为它很容易溢出目标缓冲区,无法控制在输入流的长度上。经常使用fgets
。
char name[256]; //array store the name
//...
fgets(name,sizeof name,stdin); //safe,can't overflow the buffer,input size is limited
name[strcspn(name,"\n")] = '\0'; //fgets parses the newline character,it must be removed
//...
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。