使用getline按空格分割字符串
使用getline按空格分割字符串
std::getline 函数默认使用换行符作为分隔符来读取整行输入。如果要使用 std::getline 按空格分割字符串,可以使用 std::istringstream 将字符串转换为输入流,然后使用 std::getline 并将空格作为分隔符进行读取。
以下示例演示了如何使用 std::getline 和 std::istringstream 按空格分割字符串:cpp#include
int main() { std::string sentence = 'Hello, how are you today?'; std::istringstream iss(sentence); std::string word;
while (std::getline(iss, word, ' ')) { std::cout << word << std::endl; }
return 0;}
代码解释:
-
创建字符串和输入流: -
std::string sentence = 'Hello, how are you today?';创建一个包含多个单词的字符串。 -std::istringstream iss(sentence);创建一个std::istringstream对象iss,并将字符串sentence传递给它。这将允许我们将字符串视为输入流。 -
使用getline和空格分隔符读取单词: -
while (std::getline(iss, word, ' '))循环遍历输入流iss。 - 在每次迭代中,std::getline(iss, word, ' ')从iss中读取字符,直到遇到空格字符 (' ') 或到达流的末尾。读取的内容存储在字符串word中。 -
输出分割后的单词: -
std::cout << word << std::endl;打印读取到的单词,每个单词占一行。
总结:
通过结合 std::getline 和 std::istringstream,我们可以方便地按空格或其他空白字符分割字符串。 这为处理文本数据提供了更大的灵活性。
原文地址: https://www.cveoy.top/t/topic/crmr 著作权归作者所有。请勿转载和采集!