跳至正文
View Categories

< 1 min read

主要内容 #

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 个字符的字符串)。

这么做的原因是,计算机在接受输入字符串的前,需要先声明一个足够大的字符串,以便于后续存放

为了加深理解,我们来思考几个场景:

  • 假如我们输入的字符串很短,比如(“Hello”)
  • 这时候,我们不需要声明长度为 100 的字符串 str。长度为 6 就够了。(注意字符串的“尾后 \0”)

  • 假如我们输入的字符串很长,比如长度为 200
  • 这时候,如果我们声明的 str 长度只有 100,自然长度为 200 的字符串,是不可以存放到长度为 100 的 str 中的。
    程序就会报错。

  • 所以,一般我们要综合考虑,设置一个合适的预留大小。
  • 3. 输入带有空格 #

    还是运行上面的例程,这时候请输入”Hello World”,然后回车。

    看到的输出,应该为

    Hello

    空格,以及空格后的“World”都不见。注意:

  • 使用 cin 输入字符串时,不能有空格
  • 接受带空格的字符串输入,需要使用其他方法。

    思考:如果要读取输入”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;
    }

    还有一些其他方法,我们将在后续的课程中介绍。

    习题 #

    课后练习