主要内容
1. 字符和字符串
在上节课中,我们讲解了
字符类型 char ,并且介绍了
字符在 C++ 中的表示。
// 以下都是字符
char D = 'A';
char A = 'a';
char S = '0';
char H = '.';
char I = '+';
char M = '*';
根据我们的生活经验,除了使用一个字符以外,我们经常将字符连接起来使用,比如
// 以下每一行,都是一个“将字符连接起来”的示例
apple
Hello World!
4 * 8 = 64 / 2.0;
在 C++ 中,我们将这样的表达,称为
“字符串”。
“字符”和“字符串”的关系,如下图所示:

当然,这是一个类比啊,哈哈。
1.1 字符串的语法
在 C++ 中,字符串这样表示:
// 以下都是字符串
char da [] = "apple";
char shi[] = "Hello World!";
char ma [] = "4 * 8 = 64 / 2.0;";
char dashima[] = "A";
由什么值得注意的吗?
字符串,使用双引号(")包围。
字符串,可以有空格。
所有的 ASCII 中的字符,都可以组成字符串。
字符串,也可以只由一个字符组成。
字符串,变量的声明语法,和一般的变量不同。
下面,就
字符串变量的声明,做详细说明。
1.2 字符串变量的声明语法
语法结构:
char 变量名 [] = "字符串";
和之前的变量声明相比,这里增加了一个中括号([])。请特别注意。
由于,“字符串”其实是由“字符”组成的,所以,声明中也体现了他们之间的联系。
字符串是使用 char 来作为基础的。
在编程中,大家应该
将字符串看作一张表格。这样是非常有用的。

下面,讲解一下这个表格有什么作用。
2. 索引
对于一个表格来说,最重要的,就是怎么知道表格中的值。
字符串,可以看作一个表格,所以,应该如何获得字符串中的数据呢?
2.1 索引读取
请补全,并运行代码
char str[] = "apple";
std::cout << str[3] << std::endl;
请注意,输出的字符是哪一个,是 p 还是 l ?
对一个字符串变量,可以使用
中括号+数字,来读取里面的内容。
要特别注意的是,数字代表的意义是
表格的索引号
索引号,从 0 开始。
2.2 索引写入
请补全,并运行代码
char str[] = "apple";
str[3] = 'L'; // 修改字符串中的值。注意,'L'是一个字符
std::cout << str << std::endl; // 输出字符串
字符串中,每一个元素,都是一个字符。
2.3 输出字符串
请补全,并运行代码
char str[] = "apple";
std::cout << str << std::endl; // 输出字符串
大家是否又有着这样的疑惑,为什么这里要把“读”和“写”分开介绍呢?这是因为,“读”和“写”的概念,在程序非常重要。
我们有必要,注意一个变量的“可读”和“可写”特性(也就是,这个变量是不是可以被改变)。
2.4 可读可写的概念
这些概念,举几个例子就清楚了。(近似说明,并不完全准确)
“可读”“可写” // 用铅笔画画
“可读”“不可写” // 书上的文字,对于读者来说,就是“可读”“不可写”
“不可读”“可写” // 一般没有这种逻辑。
“不可读”“不可写” // 国家的最高机密,对于不同百姓来说,就是“不可读”“不可写”
在编程中,一般所有的变量都是可读的。但是,对可写权限有一些限制。
我们目前学习到的所有类型的变量,都是“可读”“可写” 的。有一些特殊的变量,我们将在后续课程中一一介绍。
小结一下,程序中,常见的读写权限组合为:
“可读”“不可写” // 低权限
“可读”“可写” // 高权限
习题
课后练习