簡體   English   中英

C編程中的字符輸入

[英]Char input in C programming

我有這個代碼:

int p3_2_4()
{
    char cargo[100];

    printf("Valor: ");
    scanf("%s", cargo);

    if (cargo == "C")
        printf("Chefe");
    else if (cargo == "o")
        printf("operario");
    else if (cargo == "i")
        printf("inspetor");
    else if (cargo == "m")
        printf("mecanico");
    else
        printf("O valor inserido nao tem correspondencia.");

    return 0;
}

我不知道如何使用char類型,我搜索了很多類型的char輸入,但遺憾的是我找不到我的答案。 我希望你能澄清我。

char[100]不是char它是一個字符數組 (一個字符串)。 如果要比較C中的字符串,可以使用string.h頭文件中的strcmp(a, b)strncmp(a, b, n)函數。

char name[] = "Hunter";

if(!strcmp(name, "Hunter")) // if the return value of strcmp is 0 
{
   puts("It's me!");
}
else
{
   puts("Not me.");
}

“C”不是char類型。 證明:

printf("sizeof \"C\" == %zu\n", sizeof "C");
printf("sizeof (char) == %zu\n", sizeof (char));

相反,它是一個const char[2]類型; “C”是一個字符串文字。 字符串文字轉換為字符串,字符串由額外的'\\0'字符終止。 這解釋了額外的角色。

我想你想要getchar()'C' (它們是無符號的char值存儲為int )而不是scanf("%s", ...)"C" ,如果你只打算使用一個字符來自輸入。

int cargo = getchar();
if (cargo == 'C')
    puts("Chefe");
else if (cargo == 'o')
    puts("operario");
else if (cargo == 'i')
    puts("inspetor");
else if (cargo == 'm')
    puts("mecanico");
else
    puts("O valor inserido nao tem correspondencia.");

這個問題似乎對任何人閱讀我們的優秀書籍都很容易。 你正在讀哪本書? 對我而言,似乎你可能已經為K&R的“C編程語言”做好了准備。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM