C++ 区分中文,非中文,截取含有中文的string字符串的两种方法

  • 方法一 根据中文在ASCII中的范围判断
  • 方法二 把string转成wstring

转自: http://blog.51cto.com/imyzy/1190639

方法一 根据中文在ASCII中的范围判断

#include "stdafx.h"
#include <string>
#include <iostream>
using namespace std;int _tmain(int argc, _TCHAR* argv[])
{string s = "你好CSDN,我的";string t;for(int i=0; i<s.length(); i++){if(s<255 && s>0)//扩充的ASCII字符范围为0-255,如是,处理一个字节{t.append(s.substr(i,1));t.append("/");}else//<0,>255的是汉字,处理两个字节{t.append(s.substr(i,2));t.append("/");++i;}}cout << t << endl;//输出符合要求return 0;
}

方法二 把string转成wstring

wstring str2wstr(string str)
{size_t len = str.size();wchar_t * b = (wchar_t *)malloc((len+1)*sizeof(wchar_t));MBCS2Unicode(b,str.c_str());wstring r(b);free(b);return r;
}string wstr2str(wstring wstr)
{size_t len = wstr.size();char * b = (char *)malloc((2*len+1)*sizeof(char));Unicode2MBCS(b,wstr.c_str());string r(b);free(b);return r;
}

以下为原作者的附言:
希望能为需要的朋友解决问题,
如果还不能解决可以联系QQ897703027,email: hongjiandao@163.com
欢迎大家交流cocos2d-x,C++等各方面的知识,或者创业团队求收留,本人目前在做cocos2dx网游

C++ 区分中文,非中文,截取含有中文的string字符串的两种方法相关推荐

  1. bash脚本截取字符串的两种方法

    bash脚本截取字符串的两种方法 方法一:位置截取 #bin/bash STR="1234567890asdfghjkl" echo "first character $ ...

  2. Java截取String字符串的几种方法

    方法一,指定字符,截取字符串,返回字符串数组: String str = "abcd,123,123abc,fij23"; String[] strs=str.split(&quo ...

  3. 截取含有中文、Emoji表情、特殊符号的字符串

    在码代码时经常会遇到截取字符串的问题,有时候字符串会包含中文.Emoji表情.以及一些特殊符号,这时使用String的substring()进行截取操作,结果就有可能是乱码或者不符合要求.这是因为JV ...

  4. jquery 乱码 传参_jquery获取URL中参数解决中文乱码问题的两种方法

    从A页面通过url传参到B页面时,解析url参数可以用下面两种方法: 方法一:正则分析法 function getQueryString(name) { var reg = new RegExp(&q ...

  5. bufferedreader读取中文乱码_Python读取excel的两种方法

    excel是什么 Microsoft Excel是一个使用非常广泛的电子表格程序.它的用户友好性和吸引人的功能使其成为数据科学中常用的工具.对于excel来说,整个excel文件称为工作簿,工作簿中的 ...

  6. python统计中文字符的个数_python统计中文字符数量的两种方法

    方法一: def str_count(str): '''找出字符串中的中英文.空格.数字.标点符号个数''' count_en = count_dg = count_sp = count_zh = c ...

  7. 两种解决Qt5显示中文乱码的方法(使用QStringLiteral和#pragma execution_character_set(utf-8)两种方法)

    两种解决Qt5显示中文乱码的方法(使用QStringLiteral和#pragma execution_character_set("utf-8")两种方法) 升级到Qt5.X之后 ...

  8. 中文乱码翻译器在线翻译_如何将芬兰语翻译成中文?这两种方法你得会

    我们在工作中有时候也会接触得到一些特殊的任务.举个例子,如果哪天上级让我们翻译芬兰语,若是不会翻译就很尴尬了.该怎么办呢?如何将芬兰语翻译成中文呢?这里小编想要推荐给大家两个比较好用的方法,有需要的小 ...

  9. python统计汉字个数是_python统计中文字符数量的两种方法

    方法一: def str_count(str): '''找出字符串中的中英文.空格.数字.标点符号个数''' count_en = count_dg = count_sp = count_zh = c ...

最新文章

  1. 用来定制shell环境 set/shopt
  2. 一不小心就让Java开发者踩坑的fail-fast是个什么鬼?
  3. 简书markdown支持html,简书上使用Markdown(超详细)
  4. 在线VS Code阅读源码神器 github1s
  5. 华为HCC2014的变与不变
  6. 【论文写作】文献资料的作用只是添砖加瓦
  7. 自媒体人常用工具,你还不知道的快速保存无水印视频图片方法
  8. sql server 2000 打了sp4补丁包仍不能监听1433端口问题的解决
  9. jenkins 发送html邮件模板,Jenkins配置邮件通知
  10. 汽车IC TPS7A6633QDGNRQ1应用 低压降线性稳压器
  11. Badboy 安装 使用 常见问题 badboy当前页面脚本发生错误
  12. 剑指offer之数组中重复的数(Java实现)
  13. 个人股东股权转让涉税问题初探
  14. 第一篇--读刘同的《别做那只迷途的候鸟》
  15. 快递停发区域查询(需指定快递公司) 接口说明
  16. 百面机器学习02-模型评估
  17. rust油桶用什么打_文明重启油桶获取使用攻略_文明重启油桶怎么获取和使用_玩游戏网...
  18. linux如何查看x windows,X windows
  19. USB(六)-HID(报告描述符的结构实现)
  20. vue 动态设置 echarts 画布大小 更新图表数据

热门文章

  1. 深度剖析WinPcap之(二)——网络分析与嗅探的基础知识(1)
  2. python 三角形的三个边长a,b,c ,求三角形的面积?
  3. ISIS 7 Professional仿真——键控流水灯
  4. C++ 设计员工类(Employee)
  5. C++ 计算并输出三角形的面积
  6. swift 3d v6.0汉化中文版
  7. 解决 C# GetPixel 和 SetPixel 效率问题(转)
  8. python工具之myql数据库操作
  9. 51nod1092(lcs简单运用/dp)
  10. Java 如何有效地避免OOM:善于利用软引用和弱引用