思路:看ASCII码表,字母的大小写之间相差‘32’,'a’比’A’大32,当遇见小写字母的时候,可以先强制转换成整型,然后-32,再强制转换成字符型输出。
#include<stdio.h>
main()
{
char a[100];
scanf("%s", &a);
for (int i = 0; a[i]; i++)
{
int tmp = (int)a[i];//强制转换成整型
if (tmp >= 'a' && tmp <= 'z')
{
tmp = tmp - ('a' - 'A');//('a'-'A')=32,也可以直接是tmp-32
printf("%c", (char)tmp);//强制转换成字符型
}
/*同时将大写字母转换成小写
else if (tmp >= 'A' &&tmp <= 'Z')
{
tmp = tmp + ('a' - 'A');
printf("%c", (char)tmp);
}
*/
//如果不是字母的字符串,直接输出
else
printf("%c", a[i]);
}
return 0;
}
测试:(同时转换大写字母)