阿杰 发表于 2011-6-23 21:12:01

自己写的Split函数+分隔字符串strtok函数的应用(相应于VB中的Split)


        CString str="马大哈|马小哈|阿杰1|阿杰2";
        char *string = str.GetBuffer(0);
        char seps[] = "|";//分隔符
        char* save;
        save = strtok( string, seps );
        while( save != NULL )
        {   
                printf( " %s\n", save );
                save=strtok( NULL, seps );
        }
        str.ReleaseBuffer();
结果:
马大哈
马小哈
阿杰1
阿杰2

VC6下调试通过

阿杰 发表于 2011-6-23 21:22:26


/*        自己写的
        文本分隔函数阿杰编写于:2011.06.24 */
CStringArray* Split(CString s)
{
        /*文本分隔函数*/
        static CStringArray sArr;
        sArr.RemoveAll();//这句一定要有,否则会出问题
        s = _T(s) ;
        while(1)
        {
                INT iFind = s.Find( _T("|"));
                if ( iFind < 0 )
                {//拷贝最后一个字符
                        if ( s!= _T("") )               
                                sArr.Add(s) ;
                        break ;                
                }
                CString sItem = s.Left(iFind);
                sArr.Add(sItem);
                s = s.Right(s.GetLength() - iFind - 1 );
        }
        return &sArr;/*返回字符数组的指针*/
}例子:                CStringArray* sArr;
                sArr=Split("马大哈|马小哈|阿杰1|阿杰2") ;

                int i;
                for(i=0;i<sArr->GetSize();i++)
                        cout<<(LPCTSTR)sArr->GetAt(i)<<endl;结果同上

阿杰 发表于 2011-6-27 21:25:23

兄弟你这个也不错,不用MFC我哪个需要用MFC的数组类
页: [1]
查看完整版本: 自己写的Split函数+分隔字符串strtok函数的应用(相应于VB中的Split)