伪代码:
Attributes[] = Split line(' ')
如何?
我一直这样做:
char *pch;
pch = strtok(line," ");
while(pch!=NULL)
{
fputs ( pch, stdout );
}
获取一个非写入,卡住的退出文件。这有什么问题吗? 好吧,事情甚至没有满足我的伪代码要求,但我对如何将令牌(作为char数组)索引到我的数组感到困惑,我想我应该写一个2-dim数组?
答案 0 :(得分:8)
将strtok
与" "
一起用作分隔符。
答案 1 :(得分:5)
这不是一个重复 - 对于C ++,请查看并提升@Zunino接受的答案here。
下面的基本代码,但要看到答案的全部光荣优雅,你必须点击它。
#include <iostream>
#include <string>
#include <sstream>
#include <algorithm>
#include <iterator>
int main() {
using namespace std;
string sentence = "Something in the way she moves...";
istringstream iss(sentence);
copy(istream_iterator<string>(iss),
istream_iterator<string>(),
ostream_iterator<string>(cout, "\n"));
}
这取决于以下事实:默认情况下,istream_iterator
将空格视为其分隔符。生成的标记在单独的行上写入cout
(在ostream_iterator的构造函数重载中指定的每个分隔符。)
答案 2 :(得分:1)
最简单的方法是boost::split
:
std::vector<std::string> words;
boost::split(words, your_string, boost::is_space());