我有點新的語言(C),但我所試圖做的是非常簡單的海事組織。我敢肯定,我只是忽略了某些東西或者遇到了一些邏輯錯誤。大寫字母數,小寫字母數,空計數,並下到上轉換 - ç
正如標題所暗示的,所有我希望我的節目做的是計算的小寫字母,大寫字母和空格的#。作爲附加功能,它還將輸入的小寫字母轉換爲大寫。
#include <stdio.h>
int main(void){
int iochar, numdigits=0, numlower=0, numupper=0, numwhites=0;
printf("Please enter a phrase:\n\n");
while((iochar=getchar())!=EOF) {
if ((iochar=' ')||(iochar='\t')||(iochar='\n')){
numwhites++;
putchar(iochar);
}
else if((iochar>='0')&&(iochar<='9')) {
numdigits++;
putchar(iochar);
}
else if(('a'<=iochar)&&(iochar<='z')) {
numlower++;
putchar(iochar-32);
}
else if(('A'<=iochar)&&(iochar<='Z')) {
numupper++;
putchar(iochar);
}
else
putchar(iochar);
}
printf("%d white characters, %d digits, ",numwhites,numdigits);
printf("%d lowercase have been converted to ",numlower);
printf("uppercase and %d uppercase.\n",numupper);
printf("\n\n");
return 0;
}
好。問題是什麼? – ouah
如果在編碼時錯過區分=和==,則在比較時保持左側不變。例如如果(''== iochar)。你可以避免這樣做。 – yadab
@ yadab:當比較的兩邊都是左值時,你如何避免錯誤? –