char
值可以表示为整数或单引号之间的字符,例如:'A'
。
有符号类型为char
时,其值范围是:-128
到+127
。
当char
是无符号类型时,其值范围是:0
到255
。
可以比较char
类型的值:
'Z' >= 'A' 'Q' <= 'P' 'B' <= 'b' 'B' != 66
小写字母的ASCII代码比它们的大写字母大32
。以下示例将任何输入的大写字母转换为小写:
#include <stdio.h>
int main(void)
{
char letter = 0; // 存储一个字符
printf("Enter an uppercase letter:"); // 提示输入信息
scanf("%c", &letter); // 读取输入的字符
// 判断是否为大写字母
if(letter >= 'A'){ // 是否等于或者大于 A
if(letter <= 'Z') // 是否小于 Z
{ // 是大写字母
letter = letter - 'A' + 'a'; // 将大写转换为小写
printf("您输入了一个大写字母:%c\n", letter);
}else{
letter = letter - 32;
printf("您输入的字母转大写为:%c\n", letter);
}
}else{// 输入的不是大写字母
printf("尝试使用shift键,将输入大写字母.\n");
}
return 0;
}
编译并执行上面示例代码,得到以下结果:
hema@ubuntu:~/book$ gcc main.c
hema@ubuntu:~/book$ ./a.out
Enter an uppercase letter:h
您输入的字母转大写为:H
如果输入大写字母,则字母中的字符必须在'A'
和'Z'
之间,因此下一个if
检查字符是否大于或等于'A'
:
if(letter >= 'A'){ // 是否等于或者大于 A
如果表达式为true
,则继续使用嵌套if
语句,if
语句测试字母是否小于或等于'Z'
:
如果此表达式为true
,则将字符转换为小写,并通过执行if
后面的语句块输出消息:
if(letter <= 'Z') // 是否小于 Z
{ // 是大写字母
letter = letter - 'A' + 'a'; // 将大写转换为小写
printf("您输入了一个大写字母:%c\n", letter);
}