-2
我正在嘗試使用ASCII表格將所有小寫字母轉換爲大寫字母!這是很容易處理,我已經找出了代碼。問題是,如果單詞之間存在空格,那麼程序只會更改第一個單詞,在空格之後它將不會打印任何內容。使用ASCII將小寫字母轉換爲大寫
例
詞語:安德烈亞斯給出:ANDREAS
詞語:TeSt123Ha給出:TEST123HA
BUT !!!
文字:你好45給:HELLO
沒有打印空間後!
我知道ASCII表格中的空格等於32,而在我的代碼中,我告訴程序如果當前正在閱讀的代碼不在97到122之間,那麼請不要執行任何更改!
但它仍然不工作!
char currentletter;
int i;
for (i=0; i<49; i++)
{
currentletter = str[i];
if ((currentletter > 96) && (currentletter < 123))
{
char newletter;
newletter = currentletter - 32;
str[i] = newletter;
}
else
{
str[i] = currentletter;
}
}
printf("%s\n", str);
你沒有表現str'如何'初始化 - 我敢打賭空間後的詞甚至沒有在那裏(是'str'用'argv [1]'初始化)?)如果你在printf(「%s \ n」,str);'*之前執行* case轉換代碼,會發生什麼? – 2014-09-13 08:18:02
@MichaelBurr:好點。 'scanf(「%s」,str)'是單字輸入的另一個競爭者。 – 2014-09-13 08:53:25
你的'else'分支不是問題的根源,但仍然是完全多餘的。 – 5gon12eder 2014-09-13 09:01:56