1 字符与ASCII表
1.1 字符是一种数据类型,类似:整数(int)、实数(double、float)。
1.2 下图是部分的ASCII表,主要展示字符在电脑中的存储方法。每个字符,都对应一个十进制数。
1.3 单个的字符常量,用单引号(‘ ’)来括起来。
例如:
int a :表示有一个名字为 a 的 整数变量;
char b:表示有一个名字为 b 的 字符变量;
设 a=65,根据上面的ASCII表,就是对应字符 ‘A’;
设 b=‘A’ ,则 a=b;所以 b=65。
对于每个字符,可以理解为它是一个128以内的整数。
2 字符数组 ≠ 字符串:
在C++里面,有一个类型是string,是封装好的字符串,由于不可描述的原因,以后再讨论。
2.1 今天我们讲的字符串,本质上是字符数组:
因为上面1.3的介绍,我们知道:字符=整数。所以字符数组,本质上就可以理解成是整数的数组。而且因为每个字符占用的空间只有2个字节,所以字符数组的空间会比整型的空间少一半。
2.2 读入与存储:
2.2.1 scanf 读入:读入一个字符串,可以类似整形的读入方法:
2.2.2 gets()读入:会读入包括空格的全部字符,以回车作为结束:
2.2.3 存储对比:同样读入 “ hello world! ”这句英文:
scanf 读入的效果如下:遇到空格/回车,都会结束,所以空格往后的,都没有读入。
gets()读入的效果如下:遇到回车才会结束,所以能顺利读入:空格也是一个字符,会占一格
2.2.4 说明:以上的读入方式,都是忽略数组的第0格,请你根据个人习惯选用,字符数组最后自动生成一个 ' \0 '作为结束符号;
2.3 输出:
2.3.1 类似整数数组的输出,逐格输出:PS:以下的n,是通过strlen函数获得,会在下一节中具体分析。
2.3.2 用%s来输出整个字符数组:
2.4 请你尝试一下,用以上的方法,分别读入和输出“hello world!”,看看效果吧!
ls知道你很懒,抄一下下面的代码好不好?
2.4.1 输入1 & 输出1
2.4.2 输入1 & 输出2
2.4.3 输入2 & 输出1
2.4.4 输入2 & 输出2