C语言 字符串中大小写字母转换

题目是:输入一个字符串,将其中的大写字母换成小写,小写字母换成大写,其他的字符不变。 这个是我编写出的一个程序,可是总是输出不了,想问问是哪里出现问题了呢? #include "stdio.h" #include "string.h" void inv(char *s) { int i; for(i=1;... 题目是:输入一个字符串,将其中的大写字母换成小写,小写字母换成大写,其他的字符不变。 这个是我编写出的一个程序,可是总是输出不了,想问问是哪里出现问题了呢? #include "stdio.h" #include "string.h" void inv(char *s) { int i; for(i=1;i<=strlen(s);i++) { if(*(s+i)>=65 && *(s+i)<=92) *(s+i)+=32; else if (*(s+i)>=97 && *(s+i)<=122) *(s+i)-=32; } } void main() { char *string; gets(string); inv(*string); puts(string); }

第1个回答  2019-03-17
思路:先定义字符串,并输入,然后对字符串进行遍历,并判断是否是大写字母,如果是则其ASCII加32,如果是小写字符则其ASCII减去32,最后输出字符串即可。
#include <stdio.h>
int main()
{
char a[100];
int i;
gets(a);
for(i=0;a[i]!='\0';i++)
if(a[i]>='a'&&a[i]<='z')
a[i]-=32;
else if(a[i]>='A'&&a[i]<='Z')
a[i]+=32;
puts(a);
return 0;
}
/*运行结果:
abc23DEF
ABC23def
*/
相似回答