我有一个字符串向量,其数据集如下所示。
vector<string> result;
<index> | <Name> | <email> | <status>
1|duleep|dfe@gamil.com|0
2|dasun|dasun@da.com|0
3|sampath|lkdf@dg.lk|1
4|Nuwan|Kandyjkj@lkj.com|0
现在我想获得单独的矢量数据(名称,索引,状态)请建议使用C ++的最佳方法(如何转换为字符串数组[4] [4]?)
答案 0 :(得分:1)
以下是我使用boost::tokenizer提出的示例(如果您不想使用提升,那么抱歉):
#include <iostream>
#include <boost/tokenizer.hpp>
#include <string>
#include <vector>
int main()
{
std::vector<std::string> v;
v.push_back("1|duleep|dfe@gamil.com|0");
v.push_back("2|dasun|dasun@da.com|0");
v.push_back("3|sampath|lkdf@dg.lk|1");
v.push_back("4|Nuwan|Kandyjkj@lkj.com|0");
boost::char_separator<char> sep("|");
std::vector<boost::tokenizer<boost::char_separator<char>>> tokens;
for (auto& s : v)
{
tokens.push_back({s, sep});
}
}
如果你想使用std::string array[4][4]
,只需遍历标记并将它们分配给你的数组。
这是没有提升的另一种方式:
for (auto& s : v)
{
std::stringstream ss(s);
std::string token;
while (std::getline(ss, token, '|'))
{
// Put token into your array here
}
}