C语言:给定一个小写字母,转换成大写字母
1、C语言中,字符的存储占用一个字节,且都是使用其对应的ASCII码值来存储的。
2、根据ASCII码表,我们可以看出:大、小写字母都是按顺序进行存储的,大写字母的ASCII值区间为:65~90,对应的字母为:'A'-'Z';小写字母的ASCII值区间为:97~122,对应的字母为:'a'-'z',因此,将小写字母转化为大写字母,可以直接将该变量减32即可得到对应的大写字母。
3、因此源程序如下:
#include <stdio.h>
char toUpCase(char ch);
int main()
{
int ch;
printf("请输入一个小写字母:");
scanf("%c",&ch);
printf("对应的大写字母为:%c\n",toUpCase(ch)) ;
}
char toUpCase(char ch)
{
if(( 'a' <= ch) &&(ch <='z'))
{
return (ch - 32);
}
return ch;
}
4、输出如下:
温馨提示:答案为网友推荐,仅供参考
第1个回答 2008-06-09
小写字母的ASCII码比大写字母的ASCII码大32(可查ASCII码表),所以只要将小写字母强制转换成int型(这样就转换成了ASCII码),再减去32,所得结果强制转换成char型即可.
第2个回答 2008-06-09
这个有两种做法:
一种直接用库函数toupper(char):
另一种是根据大小写字母之间的差值为32
#include <stdio.h>
#include <ctype.h>//包含toupper(char)函数
void main()
{
char c1,c2;
scanf("%c%c", &c1,&c2);//输入两个字符
printf("%c\n", toupper(c1));//方法1
c2 -= 32; //方法2
printf("%c\n", c2);
}
一种直接用库函数toupper(char):
另一种是根据大小写字母之间的差值为32
#include <stdio.h>
#include <ctype.h>//包含toupper(char)函数
void main()
{
char c1,c2;
scanf("%c%c", &c1,&c2);//输入两个字符
printf("%c\n", toupper(c1));//方法1
c2 -= 32; //方法2
printf("%c\n", c2);
}
第3个回答 推荐于2017-10-05
#include <stdio.h>
#include <ctype.h>
int main(void)
{
char c;
scanf("%c%*c",&c);
putchar(toupper(c));
return 0;
}本回答被提问者采纳
#include <ctype.h>
int main(void)
{
char c;
scanf("%c%*c",&c);
putchar(toupper(c));
return 0;
}本回答被提问者采纳
第4个回答 2008-06-09
toupper();