使用打印功能无法打印字符串的问题

时间:2019-07-06 02:49:27

标签: c input

当输入状态为“是”时,字符串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;
}

1 个答案:

答案 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;
}
  • 首先创建大小为4的sta,以允许3个字符“是”和'\0'终止符一起放入其中。
  • scanf()不需要&运算符来输入字符串。
  • 初始化为'\0'的字符数组(相当于ASCII 0)。
  • 删除了不需要的头文件,并改进了格式。