首页 > 代码库 > android上让我放弃使用wstring来操作中英文字符串 转
android上让我放弃使用wstring来操作中英文字符串 转
android上让我放弃使用wstring来操作中英文字符串
2013-08-07 16:37:24| 分类: cocos2d|举报|字号 订阅
项目需要,需要对中英文字符串进行遍历修改等,本来wstring和string网上面有一大堆的介绍,其中有一个“跨平台”的方法,但是无奈是用到setlocale这个方法,这个方法在android(NDKR8D)上面无论如何都返回null,也可以看看其源代码(测试版本NDK R8D)
google和度娘上找了我一整天,后来不得不请教himi,himi指了一个方法给我,也解决了我这个需求。最终的不得不放弃使用wstring
google和度娘上找了我一整天,后来不得不请教himi,himi指了一个方法给我,也解决了我这个需求。最终的不得不放弃使用wstring
先感谢一下李华明himi
简述一下himi的思路,遍历std:string,判断每个字节的范围是否在[0,127]这个ascii范围内,不是的话,就以长度为3放进一个string里面,最后返回的结果是一个vector<string>,就等于我要用到的wstring了
简单代码如下:
vector<string> toVectorCharacters(const string& $str, int $characterWidth) {
int size = $str.size();
vector<string> result;
FOR_LOOP(size, i){
char c = $str[i];
if (c <= 127 && c >= 0) {
string asciiChar($str.begin() + i, $str.begin() + i + 1);
result.push_back(asciiChar);
} else {
string utf8char($str.begin() + i, $str.begin() + i + $characterWidth);
result.push_back(utf8char);
i += $characterWidth - 1;
}
}
return result;
}
android上让我放弃使用wstring来操作中英文字符串 转
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。