C显示两者(简单if-then)

时间:2013-02-27 22:53:37

标签: c

我一定是在失去理智:-(。我不确定,但如果输入2,我就会得到肯定而且没有显示......

int main(void)
{
    int input;
    char yes[3] = "yes";
    char no[2] = "no";
    printf("Are you ok? Type in 1 for yes or 2 for no.\n");
    scanf("%d", &input);

    if (input == 1)
       printf("%s, I am\n.", yes);
    else
       printf("%s, I am not\n.", no);
    getchar();
    getchar();
}

1 个答案:

答案 0 :(得分:6)

char yes[3] = "yes";

您的阵列中需要4个字符。

 char no[2] = "no";

您的阵列中需要3个字符。

否则C将不会为数组终止null。

更好的方法是在构建时自动处理大小:

char no[] = "no";
char yes[] = "yes";