对 c++ 来说是全新的,我很难在字符串上拆分。我在堆栈溢出中看到了一些这样的例子,但是在 for 循环中循环时我无法让样本工作。
本质上,我有一个看起来像的字符串数组。
const string userData[] =
{"A1,John,Smith,smithJ@mail.com,42",
"B2,Jane,Doe,jd@gmailcom,121,2",
"C3,Mickey,Mouse,mouseman@mail.com,20"
};
以下是我自己最接近的解决方案
string s;
vector<istringstream> streamV;
vector<string> stringV;
for(const auto& str : userData)
{
istringstream nasa { str };
getline(nasa, s, ',');
stringV.push_back(s);
}
cout << stringV[0] << endl;
cout << stringV[1] << endl;
输出
A1
B1
预期目标:我希望将每个逗号分隔值添加到向量中。然后,调用类构造函数,将最后一个值从字符串转换为 int。
Edit1 我知道我的问题类似于 迭代字符串单词的最优雅方法 主要区别在于提供的解决方案不适用于逗号分隔列表,以及遍历数组/向量。
原文由 shell_surfer 发布,翻译遵循 CC BY-SA 4.0 许可协议
试试这个片段: