cocos2d-x 字符串截取

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;
}
时间: 2024-11-06 10:03:58

cocos2d-x 字符串截取的相关文章

istringstream字符串流,实现类似字符串截取的功能,字符串流中的put,str()将流转换成为字符串string

 1. istringstream字符串流 #include <iostream> #include <sstream> #include <string> using namespace std; struct MyStruct { string str1, str2, str3; double db; int num; char ch; }; void main() { string  mystring("china  google microsoft

Linux下实现字符串截取方法总结

Linux下实现字符串截取,大体上可以分为两种,使用命令实现截取,使用工具实现截取.具体截取方式如下: a.#截取,可以实现删除左边字符,保留右边字符 从左边第一个</>开始,删除</>及之前的所有字符 str=http://www.baidu.com/index.html echo ${str#*/}        # right first / 输出:      /www.baidu.com/index.html b.##截取,可以实现删除左边字符,保留右边字符 从最右边的&l

shell脚本中8种字符串截取方法_转自脚本之家

转自:http://www.jb51.net/article/56563.htm Linux 的字符串截取很有用.有八种方法. 假设有变量 var=http://www.aaa.com/123.htm. 1. # 号截取,删除左边字符,保留右边字符. echo ${var#*//} 其中 var 是变量名,# 号是运算符,*// 表示从左边开始删除第一个 // 号及左边的所有字符即删除 http://结果是 :www.aaa.com/123.htm 2. ## 号截取,删除左边字符,保留右边字符

MySQL字符串函数substring:字符串截取

MySQL 字符串截取函数:left(), right(), substring(), substring_index().还有 mid(), substr().其中,mid(), substr() 等价于 substring() 函数,substring() 的功能非常强大和灵活. 1. 字符串截取:left(str, length) mysql> select left('example.com', 3);+-------------------------+| left('example.

Shell脚本8种字符串截取方法总结

Linux 的字符串截取很有用.有八种方法. 假设有变量 var=http://www.aaa.com/123.htm. 1. # 号截取,删除左边字符,保留右边字符. echo ${var#*//} 其中 var 是变量名,# 号是运算符,*// 表示从左边开始删除第一个 // 号及左边的所有字符即删除 http://结果是 :www.aaa.com/123.htm 2. ## 号截取,删除左边字符,保留右边字符. echo ${var##*/} ##*/ 表示从左边开始删除最后(最右边)一个

php中文字符串截取方法实例总结

本文实例总结了php中文字符串截取方法,非常实用的技巧.具体方法分析如下: 1.使用mbstring扩展库的mb_substr截取就不会出现乱码了. 2.自己书写截取函数,但效率不如用mbstring扩展库来得高. 3.如果仅是为了输出截取的串,可用如下方式实现:substr($str, 0, 30).chr(0). substr()函数可以分割文字,但要分割的文字如果包括中文字符往往会遇到问题,这时可以用mb_substr()/mb_strcut这个函 数,mb_substr()/mb_str

个人对php,js,css字符串截取的办法汇总

下面的是个人对php,js,css字符串截取的办法汇总,对大神来说可能没什么含量,求少喷哦,当然可以学习教程增强自己的编程能力. 首先是PHP版本的. 其实只用mb_strimwidth一个函数就可以了,该函数的说明如下: mb_strimwidth -  获取按指定宽度截断的字符串 string mb_strimwidth ( string $str , int $start , int $width [,  string $trimmarker = "" [, string $en

Swift字符串截取方法的改进

字符串截取方法是字符串处理中常用的基本方法.熟悉iOS的朋友都知道在基础类的NSString中有substringToIndex:,substringFromIndex:以及substringWithRange:这三种基本的截取方法. 问题描述: 那么,Swift语言中的String类是否有同样的截取功能呢? 反复查看String类的头文件,并没有找到相同或相似的函数接口. 直接在swift文件里也不能对一个String类的变量调用上面的方法. 然而通过引入基础框架,即 import Found

MySQL 字符串截取函数;

*left(), right(), substring(), substring_index(),mid(), substr(),mid(), substr() 等价于 substring() 函数 1. 字符串截取:left(str, length) mysql> select left('example.com', 3); +-------------------------+ | left('example.com', 3) | +-------------------------+ |

PHP字符串截取,计算字符串长度

1 /** 2 * 字符串截取,支持中文和其他编码 3 * @param [string] $str [字符串] 4 * @param integer $start [起始位置] 5 * @param integer $length [截取长度] 6 * @param string $charset [字符串编码] 7 * @param boolean $suffix [是否有省略号] 8 * @return [type] [description] 9 */ 10 function msubs