📅  最后修改于: 2023-12-03 15:08:16.886000             🧑  作者: Mango
在C++中,获取字符串中的空格可以使用多种方法。下面我们将介绍一些常用的方法。
getline()
函数可以从std::istream
中读取一行字符串,包括其中的空格,并将其存储在一个std::string
对象中。
#include <iostream>
#include <string>
using namespace std;
int main()
{
string str;
getline(cin, str);
cout << "The input string is: " << str << endl;
return 0;
}
上面的代码中,我们使用getline()
函数从标准输入中读取一行字符串,并将其存储在str
对象中。然后我们输出这个字符串。
cin.get()
函数可以从输入流中逐个字符地读取字符,包括其中的空格,并将其存储在一个字符数组中。
#include <iostream>
using namespace std;
int main()
{
char str[100];
cout << "Enter a string: ";
cin.get(str, 100);
cout << "The input string is: " << str << endl;
return 0;
}
上面的代码中,我们使用cin.get()
函数从标准输入中逐个字符地读取字符,并将其存储在str
字符数组中。然后我们输出这个字符串。
stringstream
类是C++标准库中的一个用于字符串流的类,可以用于将字符串转换为其他类型或者将其他类型转换为字符串。我们可以使用它来提取字符串中的空格。
#include <iostream>
#include <sstream>
#include <string>
using namespace std;
int main()
{
string str = "Hello World Here";
stringstream ss(str);
string word;
while (ss >> word)
cout << word << endl;
return 0;
}
上面的代码中,我们使用stringstream
类从字符串"Hello World Here"
中提取单词,并将它们一一输出。
strtok()
函数可以将一个字符串分割成多个子字符串,每个子字符串以一个指定的分隔符为界。我们可以使用它来分割字符串中的空格。
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
char str[] = "hello world here";
char *pch;
pch = strtok(str, " ");
while (pch != NULL)
{
cout << pch << endl;
pch = strtok(NULL, " ");
}
return 0;
}
上面的代码中,我们使用strtok()
函数从字符串"hello world here"
中提取单词,并将它们一一输出。
以上是C++中几种获取字符串中空格的方法。做为程序员应该使用合适的方法根据实际需求来选择使用。