zoukankan      html  css  js  c++  java
  • c++ split()实现

    在c++中,没有java与python中定义的split()功能的函数,于是自己实现之。

    情况1,适用范围,分隔符为字符。思路,记录分隔符的位置,判断需要截取的字符串的下标范围。

    vector<string> split(string s,char ch){
        int start=0;
        int len=0;
        vector<string> ret;
        for(int i=0;i<s.length();i++){
            if(s[i]==ch){
                ret.push_back(s.substr(start,len));
                start=i+1;
                len=0;
            }
            else{
                len++;
            }
        }
        if(start<s.length())
            ret.push_back(s.substr(start,len));
        return ret;
    }
    情况2,使用范围,分隔符为字符串。思路,记录分隔字符串的起始位置,判断需要截取的字符串的下标范围。
    vector<string> split(string s,string seprate){
        vector<string> ret;
        int seprate_len=seprate.length();
        int start=0;
        int index;
        while((index = s.find(seprate,start))!=-1){
            ret.push_back(s.substr(start,index-start));
            start = index+seprate_len;
        }
        if(start<s.length())
            ret.push_back(s.substr(start,s.length()-start));
        return ret;
    }
  • 相关阅读:
    75. 颜色分类
    排序链表
    两个数组的交集
    242. 有效的字母异位词
    排序优化
    622.设计循环队列
    比较含退格的字符串
    682.棒球比赛
    496.下一个更大的元素I
    线性排序算法
  • 原文地址:https://www.cnblogs.com/zhoudayang/p/5247276.html
Copyright © 2011-2022 走看看