当输入状态为“是”时,字符串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;
}
答案 0 :(得分:3)
我已根据注释中的建议改进了您的代码。
#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;
}
sta
,以允许3个字符“是”和'\0'
终止符一起放入其中。scanf()
不需要&
运算符来输入字符串。 '\0'
的字符数组(相当于ASCII 0)。