zoukankan      html  css  js  c++  java
  • c++ 中的slipt实现

    来自

    http://www.cnblogs.com/dfcao/p/cpp-FAQ-split.html

    http://blog.diveinedu.com/%E4%B8%89%E7%A7%8D%E5%AD%97%E7%AC%A6%E4%B8%B2%E5%88%86%E5%89%B2%E6%96%B9%E6%B3%95cc/

    利用STL函数进行字符串分隔

    涉及到string类中的的两个函数,find和substr

    1,find函数(查找子字符串第一次出现的位置

    size_type find( const basic_string& str, size_type pos = 0 ) const;

    str,表示目标字符串

    pos,从pos位置开始

    返回值:返回子串第一次出现的位置,否则返回string::npos尾后位置

    2,substr函数(获得子字符串

    basic_string substr( size_type pos = 0,size_type count = npos );
    

    pos,子字符串第一个字符的位置

    count,子字符串中的长度,默认值为npos,npos就是 s的尾后位置

    返回值是一个 字符串,即s [ pos, pos_count ),左闭右开。

    在编程语言中,这个度:s.substr(pos, sizeof(sub) )

    可以这么实现

    class A{
        void myslipt(string &s,vector<string> &re,string &c){
            std::string::size_type pos1,pos2;
            pos2 = s.find(c);///find
            pos1 = 0;
            while(std::string::npos != pos2){
                re.push_back(s.substr(pos1,pos2-pos1));///[p1,p2)
                pos1 = pos2+c.size();
                pos2 = s.find(c,pos1);
            }
            if(pos1!=s.length()){
                re.push_back(s.substr(pos1));
            }
        }
    
        void test(ListNode *head){
            cout<<"begin test...
    ";
            string str = "this is a string";
            string c = "is";
            vector<string> re;
            myslipt(str,re,c);
            for(auto i: re){
                cout<<"|"<<i<<"|"<<endl;
            }cout<<endl;
    
            cout<<"end test...
    ";
        }  
    };
    begin test...
    |th|
    | |
    | a string|
    
    end test...
  • 相关阅读:
    【转】QT创建子对话框的方法
    IplImage转为Mat的方法
    浅谈Android选项卡(二)
    浅谈Android选项卡(一)
    Android来电、去电监听
    文件加密
    Java实现文件重命名
    使用单个httpclient实例请求数据。
    获取Android状态栏的高度
    [置顶] 微软翻译接口
  • 原文地址:https://www.cnblogs.com/li-daphne/p/5524752.html
Copyright © 2011-2022 走看看