查找istringstream中的字符串数

Find how many strings in istringstream

本文关键字:字符串 istringstream 查找      更新时间:2023-10-16

当我使用istringstream:时,我想知道变量中有多少字符串

string cadena;
int num;
istringstream ss(cadena);
ss >> num;
int n = ss.size();  // This doesn't work

例如,如果cadena是:"1 2 3 4",当我使用istringstream时,我想知道ss中有多少字符串(在本例中为4)。

我知道的唯一方法是解析字符串。std::distanceistream_iterator可以为您做到这一点:

std::distance(std::istream_iterator<string>(ss), 
              std::istream_iterator<string>());
#include <iostream>
#include <sstream>
#include <algorithm>
#include <ctype.h>
int  main()
{
  std::string str = ss.str();
  // int c = (int) std::count_if (str.begin(), str.end(), isspace) + 1;
  int c = 1;  // 0
  for (unsigned int i = 0; i <str.size(); i++ ) 
    if (isspace(str[i])) 
      c++;
  std::cout << c;
  return 1;
}

您可以执行以下操作:添加while循环

while(ss>>cadena) {