如果它包含多个\ n,如何在每25个换行符(\ n)上拆分一个字符串

时间:2015-09-01 13:13:37

标签: c++ string split

我已阅读文件并将其内容存储到std::string变量BUF中,现在想将数据拆分为小块,每个块包含25行。

2 个答案:

答案 0 :(得分:2)

我看到两个选项:

  • std::istringstream构建BUF(或使用您用来读取文件的流)并使用std::getline逐行读取并追加到前一行,同时计算最多25行等等...
  • 在循环计数为25时使用std::string::find,然后使用std::string::substrstd::find以及迭代器范围内的构造。

我认为这是足够的暗示。

答案 1 :(得分:0)

我做到了!

    if(N>25) \\N no of lines
     {
         int i=0;
         std::istringstream ss(text);
         text="";
         string splited,part="";
         while(std::getline(ss, splited, '\n')) {
              part+=splited+"\n";
              if(i==24)
              {
                i=0;
                part.erase(part.size() - 1);
                d.Insert(part,time);
                cout<<part;
                part="";
                continue;
              }
              else{
              ++i;
              continue;
              }
           }
           if(i!=0)
              {
                 d.Insert(part,time);
              }
     }
else{
        d.Insert(text,time);
     }