将字符串中的逐个单词保存到列表中

时间:2016-01-24 19:59:00

标签: c++ string stringstream

我希望从一个字符串中获取单词(例如:"我的名字是Jonathan"),然后将每个单词保存到列表中的元素中。我想做到极其简单,没有任何载体等。 例如

我从字符串中取出一个单词并将其保存到元素中 相同 直到字符串结尾。

1 个答案:

答案 0 :(得分:3)

您可以通过以下方式执行此操作

#include <string>
#include <list>
#include <sstream>
#include <iterator>

//...

std::istringstream is( "My name is Jonathan" );

std::list<std::string> lst( ( std::istream_iterator<std::string>( is ) ),
                            std::istream_iterator<std::string>() );

这是一个示范程序

#include <iostream>
#include <string>
#include <list>
#include <sstream>
#include <iterator>

int main()
{    
    std::istringstream is( "My name is Jonathan" );

    std::list<std::string> lst( ( std::istream_iterator<std::string>( is ) ),
                                std::istream_iterator<std::string>() );

    for ( const std::string &s : lst ) std::cout << s << ' ';
    std::cout << std::endl;

    return 0;
}            

它的输出是

My name is Jonathan 

如果要将此任务应用于您自己的列表,则可以使用以下方法

std::istringstream is( "My name is Jonathan" );
std::string word;

while ( is >> word )
{
    // append your list with the word
}