当输入状态为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/

10-13 08:34