2
我剛纔看到這在技術上是可行的,我唯一無法解決的錯誤是每次測試時都打印出來的最後一個ASCII字符,我也測試了這個使用名變量,我的意思只是做的32減法以ASCII任何小寫字母應該給我自己的大寫之一,確實如此,但爲什麼I'm得到額外字符I'm好奇,從我在屏幕上看到的很明顯是Û。在沒有ctype.h的情況下轉換大小寫字母
#include <stdio.h>
main()
{
char name[22];
int i;
fputs("Type your name ",stdout);
fgets(name,22,stdin);
for (i = 0; name[i] != '\0'; i = i + 1)
printf("%c",(name[i])-32); /*This will convert lower case to upper */
/* using as reference the ASCII table*/
fflush(stdin);
getchar();
}
感謝那絕對是一個解決方案,並作爲其他替代,我記得與fgets ()在輸入完名後輸入新行,我應該在fgets()*** name [strlen(name)-1] ='\ 0'後添加下一行; ***可以在轉換時刪除我輸入的新行,並將其作爲空值。 – Yudop
我知道這個問題是舊的,然而,我想強制每個人在這樣的操作中使用'unsigned char',因爲角色可能在某些平臺上出現。 – ghostmansd