-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++代碼,其中三行是變量聲明。 –