分割字符串函数

来源:互联网 发布:unity3d 获取版本号 编辑:程序博客网 时间:2024/06/01 07:25

http://hi.baidu.com/sanvy4116/blog/item/bc5f8d001637ac83e850cd4b.html 转自这里 

 

 

分割原理:根据分割字符将字符串分成几份,分割字符串必须不是第一个字符和最后一个字符,否则忽略
参数:lpSrc源字符串,chSep用于分割的字符,saResult用来存放分割后的字符串数组
返回值:分割后的字符串个数
int SplitString(LPCTSTR lpSrc,TCHAR chSep,CStringArray & saResult)
{
    saResult.RemoveAll();
    if(lpSrc==NULL)
        return 0;

    size_t iLen=strlen(lpSrc);
    if(iLen==0)return 0;
    //
    size_t index=0;   
    CString sDest;
    do{
        if(lpSrc[index]==chSep)
        {//如果当前遇见分割符
            if(index)
            {//不是开头的分割符才需要存字符串
                saResult.Add(sDest);               
            }
            sDest=_T("");
        }
        else
        {
            char s[2]={lpSrc[index],'/0'};           
            sDest.Append(s);
        }
        ++index;
    }while(index<iLen);

    if(!sDest.IsEmpty())//存放最后分割符后的字符串
        saResult.Add(sDest);

    return (int)saResult.GetSize();
}



//测试代码,m_string为与EDIT控件关联的字符串变量
void CMyDlg::OnBnClickedOk()
{
    UpdateData();
   
    CStringArray sa;
    SplitString(m_string,';',sa);

    for(int i=0;i<sa.GetSize();++i)
    {
        CString s=sa.GetAt(i);
        TRACE("%s/n",s);
    }
    TRACE("-----------------------------/n");
}

原创粉丝点击