-4
我想从字符串中逐个获取单词(如:“我的名字是Jonathan”),并将每个单词保存到列表中的一个单元上。我想这样做extremelly简单,不需要任何载体等 例如将一个字从字符串保存到列表中
我从一个字符串,一个字,并将其保存到一个元素 同样 直到字符串的结尾。
我想从字符串中逐个获取单词(如:“我的名字是Jonathan”),并将每个单词保存到列表中的一个单元上。我想这样做extremelly简单,不需要任何载体等 例如将一个字从字符串保存到列表中
我从一个字符串,一个字,并将其保存到一个元素 同样 直到字符串的结尾。
为此,您可以通过以下方式
#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
}
如果您想要通过char提取char,您还需要查看['std :: istreambuf_iterator'](http://en.cppreference.com/w/cpp/iterator/istreambuf_iterator)。 –
很难做到“在列表上”和“没有任何矢量等”,因为列表通常有资格作为“矢量等”。你可以再详细一点吗? – molbdnilo
使用例如['std :: vector'](http://en.cppreference.com/w/cpp/container/vector)(或其他标准[容器](http://en.cppreference.com/w/cpp/container) ))*是简单的方法。使用标准容器,['std :: string'](http://en.cppreference.com/w/cpp/string/basic_string),[streams](http://en.cppreference.com/w/cpp/ io)和[算法](http://en.cppreference.com/w/cpp/algorithm)和[迭代器辅助函数](http://en.cppreference.com/w/cpp/iterator)它可以完成只有四行C++代码,其中三行是变量声明。 –