zoukankan      html  css  js  c++  java
  • C++标准库里面没有字符分割函数split,自己编写函数实现字符串分割功能

    #include <vector>
    #include <string>
    #include <iostream>
    using namespace std;
    
    vector<string> split(const string &s, const string &seperator){
      vector<string> result;
      typedef string::size_type string_size;
      string_size i = 0;
      
      while(i != s.size()){
        //找到字符串中首个不等于分隔符的字母;
        int flag = 0;
        while(i != s.size() && flag == 0){
          flag = 1;
          for(string_size x = 0; x < seperator.size(); ++x)
          if(s[i] == seperator[x]){
            ++i;
            flag = 0;
            break;
          }
        }
        
        //找到又一个分隔符,将两个分隔符之间的字符串取出;
        flag = 0;
        string_size j = i;
        while(j != s.size() && flag == 0){
          for(string_size x = 0; x < seperator.size(); ++x)
          if(s[j] == seperator[x]){
            flag = 1;
            break;
          }
          if(flag == 0) 
          ++j;
        }
        if(i != j){
          result.push_back(s.substr(i, j-i));
          i = j;
        }
      }
      return result;
    }
    
    int main(){
      string s = "a,b*c*d,e";
      vector<string> v = split(s, ",*"); //可按多个字符来分隔;
      for(vector<string>::size_type i = 0; i != v.size(); ++i)
        cout << v[i] << " ";
      cout << endl;
      //输出: a b c d
    }
  • 相关阅读:
    遥感影像数据产品级别概述
    数据传输中的成帧
    帧同步
    I、Q信号是如何产生的,I、Q信号复用的作用
    调制解调技术
    基带信号、载波信号和宽带信号
    浅谈MVP架构及开发模式
    剑指offer代码 vs2013执行
    进程的状态
    死锁的必要条件及避免
  • 原文地址:https://www.cnblogs.com/ming-4/p/11478144.html
Copyright © 2011-2022 走看看