📅  最后修改于: 2023-12-03 15:23:07.961000             🧑  作者: Mango
在 C++ 中,读取包含空格的字符串可能会让初学者困惑。本文将介绍几种读取包含空格的字符串的方法。
C++ 中的 std::getline() 函数可以一次读取一行字符串,包括其中的空格。使用方法如下:
#include <iostream>
#include <string>
int main() {
std::string s;
std::getline(std::cin, s);
std::cout << s;
return 0;
}
上面的代码中,std::cin 表示从标准输入流中读取输入。读取到的字符串将保存在 s 变量中,最后输出字符串内容。
在 C++ 中,可以使用流提取运算符 >> 来逐个读取由空格分隔开的字符串。使用方法如下:
#include <iostream>
#include <string>
int main() {
std::string s;
std::cin >> s;
std::cout << s;
return 0;
}
上面的代码中,std::cin >> s 会读取 std::cin 中的下一个字符串,直到遇到空格或换行符为止。读取到的字符串将保存在 s 变量中,最后输出字符串内容。
需要注意的是,这种方法只能读取一段没有空格的字符串。如果需要读取包含空格的字符串,需要在字符串中加上引号,例如:
#include <iostream>
#include <string>
int main() {
std::string s;
std::cin >> s;
std::getline(std::cin.ignore(), s); // 忽略第一个空格,读取整行
std::cout << s;
return 0;
}
最后,可以使用 getchar() 函数逐个读取字符,直到读取到换行符为止。读取到的字符可以使用字符串拼接起来,形成完整的字符串。使用方法如下:
#include <iostream>
int main() {
std::string s;
char c;
while ((c = getchar()) != '\n') {
s += c;
}
std::cout << s;
return 0;
}
上面的代码中,使用 getchar() 函数读取字符,直到读取到换行符为止。然后,将读取到的字符拼接起来,形成完整的字符串,最后输出字符串内容。
使用这种方法比较繁琐,但也是一种可行的方法。
本文介绍了三种在 C++ 中读取包含空格的字符串的方法,包括使用 std::getline() 函数、使用流提取运算符和使用 getchar() 函数。这些方法各有自己的特点,在实际开发中可以根据需要灵活选择。