zoukankan      html  css  js  c++  java
  • 一个类似Java String[] split(String regex)的VC++函数

    http://hi.baidu.com/ccskun/blog/item/9c4d033219ab5bfe1b4cff41.html/cmtid/1ce9b84445d57e2dcffca3d3

    INT_PTR Split_CString(const CString& source,//需要截取的原字符串
                      CStringArray& dest,//分割后的字符串数组
                      const CString& division//用做分割符的字符串
                      )//使用方式:Split(strViewString, dest, "<div id="pro_detail">");
    {
        if( source.IsEmpty() )
            return -1;
        dest.RemoveAll();
        int len = division.GetLength();
        int iFirst = 0;
        int nCount = 0;
        int pos = 0;
        int pre_pos = -1;
        while( -1 != pos )
        {
            if( -1 == pre_pos )
                pos = source.Find(division,pos);
            else
                pos = source.Find(division,(pos+1));

            if( -1 == pre_pos )
            {
                iFirst = 0;
                if( -1 == pos )
                    nCount = source.GetLength();
                else
                    nCount = pos;
            }
            else
            {
                iFirst = pre_pos+len;
                if( -1 != pos )
                    nCount = pos - pre_pos - len;
                else
                    nCount = source.GetLength()-pre_pos-len;
            }

            dest.Add(source.Mid(iFirst,nCount));

            pre_pos = pos;
        }

        return dest.GetCount();

    我也写了一个,

    Int PA_CStringSplit(CString strSource, CString strSplitter, CStringArray &saDestination) {
        INT m_iLen_source = strSource.GetLength();
        INT m_iLen_splitter = strSplitter.GetLength();
        INT iStart = 0;
        INT iLen = 0;
        INT iPos = 0;
     saDestination.RemoveAll();
        do {
            iPos = strSource.Find(strSplitter, iStart);
            if ( -1== iPos) {
                iLen = m_iLen_source - iStart;
            } else {
                iLen = iPos - iStart;
            }
            saDestination.Add(strSource.Mid(iStart, iLen));
            iStart += iLen + m_iLen_splitter;
        } while (iStart < m_iLen_source);
        return TRUE;
    }

  • 相关阅读:
    JavaScript underscore
    JavaScript jQuery 事件、动画、扩展
    JavaScript jQuery 入门回顾
    JavaScript H5 Canvas
    JavaScript Ajax + Promise
    JavaScript 浏览器对象
    JavaScript 面向对象编程
    JavaScript 标准对象
    JavaScript 高阶函数 + generator生成器
    “耐撕”团队2016.04.12站立会议
  • 原文地址:https://www.cnblogs.com/cy163/p/1757715.html
Copyright © 2011-2022 走看看