C语言编写一个转换大小写

C语言编写一个转换大小写

从键盘输入一个字符串,然后输出这个字符串

将小写字母全部转换成大写字母,

将大写字母全部转换成小写字母

要转换 首先你要知道这个字符是大写还是小写,也就是判断。

判断出来之后,才可以转。

大写的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;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-05-19
charxx='a';小写字母chardx=b;大写字母dx=xx-32;小写转大写,小写a与大写A相差的32,所以减32就得到大写;后面大写转小写的话,直接+32就可已得到了。有不懂得可以追问追问

你看清楚题目没有,输入字符串?

第2个回答  2017-04-14

#include <stdio.h>

#include<ctype.h>

int main()

{int i;

char c,s[200];

gets(s);

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

{c=s[i];

if(isupper(c))c+=32;

else if(islower(c))c-=32;

printf("%c",c);

}

printf("\n");

return 0;

}

来自:求助得到的回答
第2个回答  2017-04-14
charxx='a';小写字母chardx=b;大写字母dx=xx-32;小写转大写,小写a与大写A相差的32,所以减32就得到大写;后面大写转小写的话,直接+32就可已得到了。有不懂得可以追问追问

你看清楚题目没有,输入字符串?

相似回答
大家正在搜