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...
  • 相关阅读:
    关于webapi post 使用多个参数的间接用法
    Web Api 中Get 和 Post 请求的多种情况分析
    Juery On事件的 事件触发流程
    构建ASP.NET网站十大必备工具(1)
    了解 XSS 攻击原理
    c#访问Oracle问题及解决方法
    C#连接数据库的四种方法
    OracleClient卸载
    oracle的默认表空间
    oracle Service Name和SID的区别
  • 原文地址:https://www.cnblogs.com/li-daphne/p/5524752.html
Copyright © 2011-2022 走看看