我正在尝试迭代字符串的单词.
可以假设该字符串由用空格分隔的单词组成.
请注意,我对C字符串函数或那种字符操作/访问不感兴趣.另外,请在答案中优先考虑优雅而不是效率.
我现在最好的解决方案是:
#include <iostream>
#include <sstream>
#include <string>
using namespace std;
int main()
{
string s = "Somewhere down the road";
istringstream iss(s);
do
{
string subs;
iss >> subs;
cout << "Substring: " << subs << endl;
} while (iss);
}
Run Code Online (Sandbox Code Playgroud)
有没有更优雅的方式来做到这一点?
我已经告诉别人,编写using namespace std;代码是错误的,我应该用std::cout和std::cin直接代替.
为什么被using namespace std;认为是不好的做法?是低效还是冒着声明模糊变量(与名称std空间中的函数具有相同名称的变量)的风险?它会影响性能吗?
如果我有一个包含以逗号分隔的数字列表的std :: string,那么解析数字并将它们放在整数数组中的最简单方法是什么?
我不想将其概括为解析其他任何内容.只是一个逗号分隔整数的简单字符串,如"1,1,1,1,2,1,1,1,0".
使用c ++ 11拆分字符串最简单的方法是什么?
我已经看过这篇文章所使用的方法,但我觉得使用新标准应该采用一种不那么冗长的方式.
编辑:我希望得到一个vector<string>结果,并能够划分单个字符.
我正在解析一个 CSV 文件,该文件具有已知的string,int,int,double.
我正在编写一个逐行解析 CSV 文件的函数。我正在尝试设计它,使其看起来像这样:
void foo(const string& csvline){
std::stringstream csvStream(csvline);
std::string s; int i1; int i2; double d;
csvline >> s;
csvline >> i1;
csvline >> i2;
csvline >> d;
}
Run Code Online (Sandbox Code Playgroud)
有没有办法对 CSV 文件执行此操作?
我知道如果它们之间用空格分隔,那么这将是开箱即用的。但是对于 CSV 文件(或任意分隔符)呢?