码迷,mamicode.com
首页 > 其他好文 > 详细

cocos2d-x 字符串截取

时间:2014-11-14 12:20:52      阅读:148      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   ar   os   sp   for   div   on   

A.h

private: 
    static std::vector<std::string> parseUTF8(const std::string &str);
public:
    static std::string subUTF8(const std::string &str, int from, int to);

A.cpp

std::vector<std::string> A::parseUTF8(const std::string &str)
{
    int l = str.length();
    std::vector<std::string> ret;
    ret.clear();
    for(int p = 0; p < l; ) 
    {
        int size=0;
        unsigned char c = str[p];
        if(c < 0x80) {
            size = 1;
        }
        else if(c < 0xc2) 
        {
            size = 2;
        } 
        else if(c < 0xe0)
        {
            size = 2;
        } 
        else if(c < 0xf0)
        {
            size = 3;
        } 
        else if(c < 0xf8) 
        {
            size = 4;
        } 
        else if (c < 0xfc) 
        {
            size = 5;
        } 
        else if (c < 0xfe)
        {
            size = 6;
        }
        else
            size = 7;
        std::string temp = "";
        temp = str.substr(p, size);
        ret.push_back(temp);
        p += size;
    }
    return ret;
}

std::string A::subUTF8(const std::string &str,int from, int to)
{
    if(from > to) return "";
 
    if (str.length() < to) return "";

    std::vector<std::string> vstr = parseUTF8(str);
 
    std::vector<std::string>::iterator iter=vstr.begin();
    std::string res;
    std::string result;
    for(iter=(vstr.begin() + from); iter != (vstr.begin() + to); iter++)
    {
        res += *iter;
    }
    return res;
}

 

cocos2d-x 字符串截取

标签:style   blog   color   ar   os   sp   for   div   on   

原文地址:http://www.cnblogs.com/C-Plus-Plus/p/4096817.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!