字符
1、字符的分类
字符主要包括字母、数字、标点符号、控制字符等
在ASCII编码表中,每一个字符都用一个十进制数来表示
2、字符的表示
在计算机中,所有的数据必须以数字的形式表示,字符页不例外,根据ASCII码表的规定,每个字符一个数字表示,而这个数字在0-127之间,在C/C++里,char/short/int都可以表示整数,由于字符的数值范围较小,平常都用char类型变量来代表字符,例如:
3、字符的显示
可以使用printf将一个字符显示到控制台,使用格式化字符串 %c 表示
例如:
4、字符常量
在C/C++代码中,直接用字符常量来表示一个字符的ASCII码,使用单引号表示,例如:
char ch = 'A';
上例中'A'就是字符常量,它是一种字面常量,表示一个整数65
字符常量在任何时候都和它的ASCII码是等价的,虽然在形式上它是写成了'A',但编译器在处理代码的时候总是把它当成65来处理
以下几种写法是等价的,都会输出一个字符'A'
#include <stdio.h>
int main(){
printf("Got: %c
", 65); // 十进制
printf("Got: %c
", 'A'); // 字符
printf("Got: %c
", 0x41); // 十六进制
}
由于字符常量完全等价于一个整数,所以我们可以这样来写
#include <stdio.h>
int main(){
char ch1 = 'A' + 1; // 结果为66
char ch2 = 'B' - 1; // 结果为65
char ch3 = 'C' - 'A'; // 结果为2
printf("ch1: %d
ch2: %d
ch3: %d
", ch1, ch2, ch3);
}
还可以用int和short来表示字符
int ch1 = 'A';
short ch2 = '9';
显示字符'Y'的ASCII码
#include <stdio.h>
int main(){
printf("%d
", 'Y'); // 'Y'是一个整数,所以可以用%d显示出来
}
字符数组
在C/C++里,用一个char型数组来表示一串字符,称为"字符数组",把这一串字符称为"字符串"
字符串的两种初始化方法
char str[6] = {'h', 'e', 'l', 'l', 'o', ' '} // 这样定义要以 结尾
char str[6] = "hello";