- 第一:用for+数组(while 也一样),在函数中一个一个改字符
#include <stdio.h>
void topper(char*p)
{
int i=0;
for(;;i++)
{
if(p[i]>='a'&&p[i]<='z')
p[i]-=32;
else if(p[i]>='A'&&p[i]<='Z')
p[i]+=32;
else if(p[i]=='\0')
break;
}
}
int main()
{
char a[]="farr FR dqweWE";
topper(a);
printf("%s",a);
}
- 第二:不用字符数组,而是用循环每次扫一个字符,也就是在一行输入n个字符,会被读n次,以达到相同的效果
void touppre()
{
char a,b=2;
while (b)
{
scanf("%c",&a);
if(a>='a'&&a<='z')
a-=32,printf("%c",a);
else if(a>='A'&&a<='Z')
a+=32,printf("%c",a);
else if(a=='\0')
break;
else
printf("%c",a);
}
}
int main()
{
touppre();
}
结果sger FSGRED fsrDSB SGER fsgred FSRdsb