5 字符串的输入
5.1 cin输入字符串
可以通过cin输入字符串,代码如图8所示。
图8 cin输入字符串的代码
程序运行,当输入“hello”,点击回车后,会输出“hello”,说明此时s1的值是“hello”。但是,cin遇到空格就是停止输入,当输入“hello world”,点击回车后,输出的还是“hello”。
5.2 getline输入字符串
当输入的字符串中包含空格时,可以使用getline()函数进行输入,此时会把输入的所有内容赋值给变量,代码如图9所示。
图9 getline输入字符串的代码
在第10代码中,getline()函数将控制台cin中输入的字符串赋值给s1。运行程序,输入“hello world”,点击回车后,输出是“hello world”。
注意1 在使用getline()函数时,需要包含string头文件。
6 真题解析
6.1 2024年12月选择题
本题的答案是“A”。在“2.2 字符串下标“越界”情况”中提到,字符串最后一位的隐藏字符是’\0’。代码中的ch[5]正是字符串ch的最后一位隐藏字符,但是在C++中,’\0’也可以看做是NULL,因此,第2行if语句的条件是true,执行第4行代码输出“right”。而后面的语句是else if和else,因为第2行的语句已经是true了,因此后面的语句不会再执行。
6.2 2024年12月判断题
本题的答案是“错误”。ch[4]表示ch的最后一位隐藏字符,此时程序能够正确执行,但是没有输出。
6.3 2024年6月选择题
本题正确答案是“C”。第9行代码通过for循环对字符串s中的字符进行遍历。也就是把s中的字符进行累加,x的值等于’0’、’6’、’2’和’9’这四个字符对应ASCII编码值的累加。因为’0’的ASCII编码值是48,依次可以得到’6’的ASCII编码值是54,’2’的ASCII编码值是50,’9’的ASCII编码值是57,这四个数加在一起的值是209。