函数字符串C++的String类的字符串分割实现----(效果等于Java的String类的split函数)

改章节是一篇关于函数字符串的帖子

    功能需求,输入一个字符串“1-2-3”切割出“1”、“2”、“3”。在Java下直接用String的split函数就可以了。c++下String没有直接提供这个函数,须要自己写。

     

    网上给出的解决方案是这里的三种方法。但我是通过JNI访问的,在里面用这些vector可能不中,自己封装了个,仅供参考:

    每日一道理
整个世界,因为有了阳光,城市有了生机;细小心灵,因为有了阳光,内心有了舒畅。明媚的金黄色,树丛间小影成像在叶片上泛有的点点破碎似的金灿,海面上直射反映留有的随波浪层层翻滚的碎片,为这大自然创造了美景,惹人醉的温馨之感,浓浓暖意中夹杂着的明朗与柔情,让雨过天晴后久违阳光的心灵重新得到了滋润!
String recogScop = "01-02-03";
    cout<<recogScop<<endl;
    int size = recogScop.size();
    int pos = 0;
    string result[20] ;

    for(int i=0, j=0; i<size; i++,j++ )
    {
        pos = recogScop.find("-", i);

        if(pos == -1)
        {
           String subEnd = recogScop.substr(i, size - i); //最后一个字符串
            result[j] = subEnd;
            break;
        }
        if(pos >0)
        {
            String sub = recogScop.substr(i, pos-i);
            result[j] = sub;
            i = pos;
        }
    }

    for(int i=0; result[i] != ""; i++)
        cout<<result[i]<<endl;

    
 

     

     注意下面find的结果pos大于0,表示可以找到“-”分隔符,如果失败,也就是最后一个分隔符,pos会即是-1.

文章结束给大家分享下程序员的一些笑话语录: 姿势要丰富,经常上百度!

--------------------------------- 原创文章 By
java和分割
---------------------------------

posted @ 2013-05-31 21:14  坚固66  阅读(225)  评论(0编辑  收藏  举报