c++如何按照空格分割字符串

我们经常会需要在txt文本或csv中提取字符串,例如,调用了一次readline()之后,我们得到了如下一行string:

id 1 name 345 size 728.632 value 3.1415926

我们想把这行字符串按照空格进行分割,怎样才能实现呢?

vector<string> ParseLine(const string& line) {
  vector<string> v;
  int pos = 0;
  int pos2 = 0;
  int len = line.length();
  while (pos < len) {
    pos2 = line.find(" ", pos);
    if (pos2 == -1) pos2 = len;
    v.push_back(line.substr(pos, pos2 - pos));
    pos = pos2 + 1;
  }
  return v;
}

直接使用这个函数即可,会返回一个string类型的vector
以上面的为例,“id”,“1”,“name”,“345”,"size"等分别为vector的第0 1 2 3…个元素
例如

vector<string> parsed_string = ParseLine(line);
cout<<parsed_string[3]<<endl;

parsed_string[3]就是"345"
parsed_string[0]就是"name"
parsed_string[7]是"3.1415926"

你可能感兴趣的:(c++,c++,算法,开发语言)