要转换 首先你要知道这个字符是大写还是小写,也就是判断。
判断出来之后,才可以转。
大写的A是0x41 小写的a是0x61, 所以 相同字符大小写之间相差0x20,
这个如果记不住,就直接用'a'-'A'
可以这样写:
#include <stdio.h>
#define DAXIE(x) (x>='A' && x<='Z') //判断是大写字符。
#define XIAOXIE(x) (x>='a' && x<='z') //判断是小写字符。
#define ZHUANXIAOXIE(x) (x-'A'+'a')//转为小写
#define ZHUANDAXIE(X) (x-'a'+'A')//转为大写
int main()
{
char str[100];
int i;
gets(str);
for(i = 0; str[i]; i ++)
if(DAXIE(str[i])) str[i] = ZHUANXIAOXIE(str[i]);//如果是大写字符,转为小写。
else if(XIAOXIE(str[i])) str[i] = ZHUANDAXIE(str[i]);//如果是小写字符,转为大写。
puts(str);//输出结果
return 0;
}
追问
追答#include <stdio.h>
#define DAXIE(x) (x>='A' && x<='Z') //判断是大写字符。
#define XIAOXIE(x) (x>='a' && x<='z') //判断是小写字符。
#define ZHUANXIAOXIE(x) (x-'A'+'a')//转为小写
#define ZHUANDAXIE(x) (x-'a'+'A')//转为大写 //这里 (X)打错了。改成小写
int main()
{
char str[100];
int i;
gets(str);
for(i = 0; str[i]; i ++)
if(DAXIE(str[i])) str[i] = ZHUANXIAOXIE(str[i]);//如果是大写字符,转为小写。
else if(XIAOXIE(str[i])) str[i] = ZHUANDAXIE(str[i]);//如果是小写字符,转为大写。
puts(str);//输出结果
return 0;
}