簡體   English   中英

我該如何用C打印?

[英]How do I print this in C?

嗨,我是編程的新手,所以請多多包涵。

我想制作一個接受輸入bcdefghijklmnopqrstuvwxy並輸出的程序

else if (c == 'x')
     ++nx;

其中x是輸入的字母,並且其中輸入的每個字母都重復輸出。

到目前為止,這是我寫的:

#include <stdio.h>

main() {

    int c;

    while((c = getchar()) != EOF) {
        printf("else if (c == '%d')\n", c);
        printf("\t++n%d;\n", c);
    }

    return 0;
}

而不是返回我想要的輸出,輸出是

else if (c == '98')
    ++n98;
else if (c == '99')
    ++n99;
else if (c == '100')
    ++n100;
else if (c == '101')
    ++n101;
else if (c == '102')
    ++n102;
...

為什么c不作為變量工作?

非常感謝你的幫助!

您希望c == '%c'通過字符進行比較,或者c == %d (不帶單引號)進行比較以按序值進行比較,但是您應該真正學習使用數組。 似乎您正在嘗試用某種困難的方式編寫代碼,並使用代碼生成器來節省一些輸入。 代替:

 int n[256] = {0};  /* storage for counters, initialized to zero */

和:

n[c]++;  // increment the counter for character c;

您的代碼會短得多。

用C編寫並將由格式指向的字符串打印到stdout時,需要確保使用正確的格式說明符。 這將確保您的參數格式正確,並按預期插入到結果字符串中。

在您的情況下,您需要使用%c 但是,您當前有%d ,對於整數,它等效於%i 您可以在格式說明符上搜索更多有關Google的信息,以進一步了解其他選項。

這是有關該主題的有趣讀物:

http://www.codingunit.com/printf-format-specifiers-format-conversions-and-formatted-output

你用%d在你的printf但%d如果整數。 您要打印一個字符,因此應為%c
%d替換為%c

有關此鏈接的更多信息: http : //www.lix.polytechnique.fr/~liberti/public/computing/prog/c/C/FUNCTIONS/format.html

嘗試:

#include <stdio.h>

main() {

char c;

while((c = getchar()) != EOF) {
    printf("else if (c == '%c')\n", c);
    printf("\t++n%c;\n", c);
}

return 0;
}

您想要的是字符而不是整數

嘗試使用

printf("else if (c == '%c')\n", c);
printf("\t++n%c;\n", c);

請參閱printf說明符

%d說明符適用於整數

暫無
暫無

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

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