-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