主要内容 #
1. 输入 #
字符串的输入,也可以使用 cin,但是有一些不同。
请看下面的例子:
#include < iostream > int main() { char str[100] = ""; // 注意这一行 std::cin >> str; std::cout << str << std::endl; return 0; }
运行时,请输入”Apple”,然后回车。
cin 和 cout 这两个用法,均和之前的用法没什么差异。
但是,我们看到 str 的声明中,中括号中出现了数字。这是什么意义呢?
2. 申请一定大小的字符串 #
大家看到这样的标题一定很奇怪,我们先来解释:什么是“申请”。
“申请”是编程中的术语,指的是:让计算机预留一定大小的内存,给声明的字符串。
上面代码中的数值 100 ,就是指:预留内存的大小,应该正好可以存放长度为 100 字符串(也就是含有 100 个字符的字符串)。
这么做的原因是,计算机在接受输入字符串的前,需要先声明一个足够大的字符串,以便于后续存放。
为了加深理解,我们来思考几个场景:
这时候,我们不需要声明长度为 100 的字符串 str。长度为 6 就够了。(注意字符串的“尾后 \0”)
这时候,如果我们声明的 str 长度只有 100,自然长度为 200 的字符串,是不可以存放到长度为 100 的 str 中的。
程序就会报错。
3. 输入带有空格 #
还是运行上面的例程,这时候请输入”Hello World”,然后回车。
看到的输出,应该为
Hello
空格,以及空格后的“World”都不见。注意:
接受带空格的字符串输入,需要使用其他方法。
思考:如果要读取输入”Hello World”,可以怎么做?请编程,读取字符串后,并输出。
/* 请完成后,查看示例程序 */
示例程序:
#include < iostream > int main() { char str1[100] = ""; // 注意这一行 char str2[100] = ""; // 注意这一行 std::cin >> str1; std::cin >> str2; std::cout << str1 << " " << str2 << std::endl; return 0; }
还有一些其他方法,我们将在后续的课程中介绍。