一、ASCII码简介
ASCII 码使用指定的7 位或8 位二进制数组合来表示128 或256 种可能的字符。标准ASCII 码也叫基础ASCII码,使用7 位二进制数(剩下的1位二进制为0)来表示所有的大写和小写字母,数字0 到9、标点符号,以及在美式英语中使用的特殊控制字符。
来源:百度百科
二、使用场景
(一)字符比较
#include <stdio.h>
int main() {
char ch1 = 'a';
char ch2 = 'b';
if (ch1 < ch2) {
printf("ch1 < ch2\n");
} else {
printf("ch1 >= ch2\n");
}
return 0;
}
输出:ch1 < ch2
,因为'a'
的ASCII码值小于'b'
。
(二)大小写转换
#include <stdio.h>
int main() {
char ch = 'A';
char lower = ch + 32; // 大写转小写
printf("大写:%c\n", ch);
printf("小写:%c\n", lower);
return 0;
}
输出:
大写:A
小写:a
‘A’ 的ASCII码值加上32,等于 ‘a’ 的ASCII码值
(三)字符和数字转换
#include <stdio.h>
int main() {
char ch = '5';
int num = ch - '0'; // 字符转数字
printf("字符:%c\n", ch);
printf("数字:%d\n", num);
return 0;
}
输出:
字符:5
数字:5
整形 num 存的是ch-'5'
的ASCII码值,相当于'5'-'0'
的ASCII码值,然后%d直接打印出来
(四)字符数组操作
#include <stdio.h>
int main() {
char str[] = "hello world";
char target = 'l';
int count = 0;
for (int i = 0; str[i] != '\0'; i++) {
if (str[i] == target) {
count++;
}
}
printf("字符'%c'出现次数:%d\n", target, count);
return 0;
}
输出:字符'l'出现次数:3
三、注意事项
(一)字符的范围
ASCII码只能表示128个字符,超出范围的字符(如中文)无法表示。
(二)字符和整数容易混淆
char ch = 'a';
int num = ch; // num 是 'a' 的 ASCII 码值
printf("%d\n", num); // 输出 97
注意字符和其ASCII码值的区别。
(三)编码环境的影响
不同环境可能使用不同编码,需确保编码一致性。
(四)字符运算受到限制
char ch = 'a';
char result = ch + 26;
printf("%c\n", result);
字符运算需谨慎,避免结果超出有效范围。