[英]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;
}
您想要的是字符而不是整數
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.