C语言:输入一个字符串,将其中的小写转成大写的问题!

来源:百度知道 编辑:UC知道 时间:2024/05/13 08:56:04
#include <stdio.h>
void main()
{
char str[20];
int i=0;
scanf("%s",str);

while(str[i]!='\0')
{
if(str[i]>'a'&&str[i]<'z')
str[i]=str[i]-32;
i++;
}
printf("%s",str);
getch();
}
这是我写的代码.为什么第一个字母不能转换?其他的都可以.

应该改为if(str[i]>='a'&&str[i]<='z')

应该用库函数,这样可以避免错误。
#include <ctype.h>
然后用str[i] = toupper(str[i]);++i;代替while循环体内的东西。

if(str[i]>'a'&&str[i]<'z')
你所转化的是a和z之间的小写字母,没有包括a和z,
改成:if(str[i]>='a'&&str[i]<='z')就OK了~~

因为if(str[i]>'a'&&str[i]<'z')

........不光第一个,最后一个也不能.......

C语言:输入一个字符串,将其中的小写转成大写的问题! 怎样用C语言编写"输入一个字符串,将其中的大写字母改小写,然后在将其小写改为大写" c语言:编程输入一个长度小于80的字符串,统计其中字母的个数? c语言编程: 将两个字符串合并成一个字符串 输入一个字符串,将其中的小写字母变为大写字母 如何用c语言编:输入一字符串,将其中所有的大写英文字母+3,小写英文字母-3,然后再输出加密后的字符串 输入一个字符串,包括很多单词,求将其中一个单词替换为另一个的算法(C++) C语言 输入一字符串存入str中,将该字符串的反序和正序连接后形成一个新的字符串,仍存放在原处 c语言 输入字符串问题 用C语言写一个函数,将两个字符串连接。