主要内容 #
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";
由什么值得注意的吗?
下面,就字符串变量的声明,做详细说明。
1.2 字符串变量的声明语法 #
语法结构:
char 变量名 [] = "字符串";
和之前的变量声明相比,这里增加了一个中括号([])。请特别注意。
由于,“字符串”其实是由“字符”组成的,所以,声明中也体现了他们之间的联系。
字符串是使用 char 来作为基础的。
在编程中,大家应该将字符串看作一张表格。这样是非常有用的。
下面,讲解一下这个表格有什么作用。
2. 索引 #
对于一个表格来说,最重要的,就是怎么知道表格中的值。
字符串,可以看作一个表格,所以,应该如何获得字符串中的数据呢?
2.1 索引读取 #
请补全,并运行代码
char str[] = "apple"; std::cout << str[3] << std::endl;
请注意,输出的字符是哪一个,是 p 还是 l ?
对一个字符串变量,可以使用中括号+数字,来读取里面的内容。
要特别注意的是,数字代表的意义是表格的索引号
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 可读可写的概念 #
这些概念,举几个例子就清楚了。(近似说明,并不完全准确)
“可读”“可写” // 用铅笔画画 “可读”“不可写” // 书上的文字,对于读者来说,就是“可读”“不可写” “不可读”“可写” // 一般没有这种逻辑。 “不可读”“不可写” // 国家的最高机密,对于不同百姓来说,就是“不可读”“不可写”
在编程中,一般所有的变量都是可读的。但是,对可写权限有一些限制。
我们目前学习到的所有类型的变量,都是“可读”“可写” 的。有一些特殊的变量,我们将在后续课程中一一介绍。
小结一下,程序中,常见的读写权限组合为:
“可读”“不可写” // 低权限 “可读”“可写” // 高权限