c字符串大写字母转小写

如题所述

#include<stdio.h>

int main()

{ int i;

  char s[200];

  gets(s);

  for(i=0; s[i]; i++)

    if(s[i]>='A'&&s[i]<='Z')s[i]+=32;

  printf("%s\n",s);

  return 0;

}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-02-13
#include<stdio.h>
#include<string.h>
void main(){
char str[1000],i;
printf("请输入一个字符串:");
scanf("%s",&str);
/**大写字母转小写字母,原理是:
1.先将每个字符转换成对应的ASCII码
2.然后判断是否是大写字母。大写字母的ACSII码是:65到90之间
3.然后再将对应的ASCII码加上32,就得到小写字母的ASCII码
4.最后再将转换后的字符串输出
*/
for(i=0;i<strlen(str);i++){
if((int)str[i]>=65&&(int)str[i]<=90){ //判断字符串的ASCII码是否在65到90之间
str[i]=(char)((int)str[i]+32); /**如果ASCII码在65到90之间,
则将这个字符串的ASCII码加上32,
然后强转成char类型*/
}
}
printf("%s\n",str); //输出转换后的字符串
}
第2个回答  2021-02-13
先判定是否是大写字母('A'到'Z'范围内),然后依次增加0x20就行了
第3个回答  2021-02-21

相似回答