乐码库:一个极速、放心、纯净的下载站! 更新: 资源发布
  • 您的位置:首页 > 技术文档 > C/C++ > c++如何分割字符串示例代码
  • 收藏本页
      c++如何分割字符串示例代码
      发布时间:2016-12-21 08:01:16 关键词: c,字符串分割函数,c,split,字符串分割,c语言分割字符串
      内容简介:因为c++字符串没有split函数,所以字符串分割单词的时候必须自己手写,也相当于自己实现一个split函数吧!下面跟小编一起来看看如何实现这个功能。

    话不多说,直接上代码

    如果需要根据单一字符分割单词,直接用getline读取就好了,很简单

     #include <iostream>
     #include <vector>
     #include <string>
     #include <sstream>
     using namespace std;
     
     int main()
     {
       string words;
       vector<string> results;
       getline(cin, words);
       istringstream ss(words);
       while (!ss.eof())
       {
         string word;
         getline(ss, word, ',');
         results.push_back(word);
       }
       for (auto item : results)
       {
         cout << item << " ";
       }
     }

    如果是多种字符分割,比如,。!等等,就需要自己写一个类似于split的函数了:

     #include <iostream>
     #include <vector>
     #include <string>
     #include <sstream>
     using namespace std;
     
     vector<char> is_any_of(string str)
     {
       vector<char> res;
       for (auto s : str)
         res.push_back(s);
       return res;
     }
     
     void split(vector<string>& result, string str, vector<char> delimiters)
     {
       result.clear();
       auto start = 0;
       while (start < str.size())
       {
         //根据多个分割符分割
         auto itRes = str.find(delimiters[0], start);
         for (int i = 1; i < delimiters.size(); ++i)
         {
           auto it = str.find(delimiters[i],start);
           if (it < itRes)
             itRes = it;
         }
         if (itRes == string::npos)
         {
           result.push_back(str.substr(start, str.size() - start));
           break;
         }
         result.push_back(str.substr(start, itRes - start));
         start = itRes;
         ++start;
       }
     }
     
     int main()
     {
       string words;
       vector<string> result;
       getline(cin, words);
       split(result, words, is_any_of(", .?!"));
       for (auto item : result)
       {
         cout << item << ' ';
       }
     }

    例如:输入hello world!Welcome to my blog,thank you!

    以上就是c++如何分割字符串示例代码的全部内容,大家学会了吗?希望本文对大家使用C++的时候有所帮助。

      最新更新
      热门排行榜