当输入状态为yes时,字符串s似乎无法打印。
#include <stdio.h>
#include <string.h>
#include <math.h>
#include <stdlib.h>
int main() {
char name[20],sta[3];
scanf("%s",&name);
scanf("%s",&sta);
if((strcmp("Yes",sta)==0)||(strcmp("yes",sta)==0))
printf("Mrs.%s",name);
if((strcmp("No",sta)==0)||(strcmp("no",sta)==0))
printf("Ms.%s",name);
return 0;
}
最佳答案
我已经根据注释中的建议改进了您的代码。
#include <stdio.h>
#include <string.h>
int main() {
char name[20] = {0},
sta[4] = {0};
scanf("%s", name);
scanf("%s", sta);
if ((strcmp("Yes", sta) == 0) || (strcmp("yes", sta) == 0))
printf("Mrs.%s\n", name);
if ((strcmp("No", sta) == 0) || (strcmp("no", sta) == 0))
printf("Ms.%s\n", name);
return 0;
}
首先创建大小为4的
sta
,以允许3个字符“是”和'\0'
终止符一起放入其中。scanf()
字符串不需要&
运算符。将字符数组初始化为
'\0'
(等效于ASCII 0)。删除了不需要的头文件,并改进了格式。
关于c - 使用打印功能无法打印字符串的问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56910863/