将字符串中的小写字母转换为大写字母,输出转换后的字符串,最后必须输出回车。
最长输入20个有效字符(不包括回车)。
例如输入:apple 输出:APPLE
如果字符串中包含了其他字符,均不进行转换,只转换小写字母为大写字母。
如输入:test2test* 输出:TEST2TEST*
#include
int main() {
int i;
char str[21];
scanf("%s", str);
while (str[i] != '\0') {
if (str[i] > 'a' && str[i] < 'z') {
str[i] = str[i] - 32;
}
i++;
}
str[i] = '\n';
puts(str);
return 0;
}
你那个判断,应该是大于等于a和小于等于z!我还是个小学生,希望对你有帮助,如果对了,我还想要点奖励
第一个问题是i你没有初始化为0
第二个问题是 if (str[i] >= 'a' && str[i] <= 'z') { ,你忘了要等于了
第三个问题是你不能用str[i] = '\n',会把字符串结束符覆盖掉
1.头文件没写全,不知道是题主复制粘贴代码的原因还是什么,建议补全;
2.while循环里面的if条件,需要考虑'a'和'z'的情况,题主目前写的条件是(a,z),也就相当于[b,y],这样就刨去两端情况了。