c语言怎么把一个小写字母转化为大写字母

如题所述

C语言中,字符的存储都是使用ascii值来存储的。
根据ASCII码表,我们可以看出:大、小写字母都是按顺序进行存储的,大写字母的ASCII值区间为:65~90,对应的字母为:'A'-'Z';小写字母的ASCII值区间为:97~122,对应的字母为:'a'-'z',因此,将小写字母转化为大写字母,可以直接将该变量减32即可得到对应的大写字母,如:
char ch='a';
printf("upper case '%c'='%c'\n", ch, ch-32 );
如果记不清,大小字母谁大谁小,则可以采用如下方法进行转换:
char ch='x';
printf("upper case '%c'='%c'\n", ch, ch-'a'+'A' ); //减a得到偏移值,加A得到相应的大写字母
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-02-24
有三种方法:
1,用小写字母减去32,eg: ch-32
2,用小写字母和32做异或运算 ch^32
3,利用库函数toupper(ch)
这三种方法都可以把小写字母转化成大写字母,根据情况使用,可以简化程序本回答被网友采纳
第2个回答  2011-08-17
char x;
输入一个小写字母放在x里;
x=x-‘a’+‘A’;
这样就转化成大写字母了。
第3个回答  2011-08-17
方法一:
#include <stdio.h>
#include <ctype.h>
int main(void)
{
char c;
int b;
printf("please input a lower letter:");
scanf("%c", &c);
b=toupper(c);
printf("%c\n",b);
return 0;
}

方法二:
#include <stdio.h>
int main(void)
{
char c1,c2;
printf("Please input a lower letter:");
scanf("%c",&c1);
c2=c1-32;
printf("%c",c2);
return 0;
}
第4个回答  2011-08-17
在ASCII码中,小写字母的a~z是97到122; 大写字母A~Z是从65到90
所以减去一个32就行了~
相似回答