C++实现含有中文字符串逆序
来源:互联网 发布:什么叫多线程编程 编辑:程序博客网 时间:2024/06/03 23:47
在字符逆序是我们实际开发和面试中常见的问题,常见到的是ASCII字符串逆序,ASCII编程字符串逆序比较简单,一个字母、数字或者符号只占用一个字节,因此逆序也相对较容易。然而汉字太多一个字节不够编码,因此一个汉字占用两个字节,其采用GBK编码方法。同时GBK为了兼容ASCII编码,规定汉字的每一个字节第八位为1(ASCII编码方式共用了七位)。如果知道了上述这些也就比较容易写出含有中文字符串的逆序。
程序:
#include<iostream>#include<string.h>using namespace std;char *stringReverse(char *src){if(src==NULL){return NULL;}int len=strlen(src);char *dest=new char[len+1];char *end=src+len-1;char *tmp=NULL;char *start=dest;while(end>=src){if(*end&0x80)//判断第八位是否为1{tmp=end;end--;*start=*end;start++;*start=*tmp;}else{*start=*end;}end--;start++;}if(end==src){*start=*end;}dest[len]=0;return dest;}int main(int argc,char *argv[]){char *p="hello world";char *q="1中国a";char *t="中国 亚洲";cout<<stringReverse(p)<<endl;cout<<stringReverse(stringReverse(p))<<endl;cout<<stringReverse(q)<<endl;cout<<stringReverse(stringReverse(q))<<endl;cout<<stringReverse(t)<<endl;cout<<stringReverse(stringReverse(t))<<endl;system("pause");}测试结果
1 0
- C++实现含有中文字符串逆序
- C实现字符串逆序
- Unity3D : 判断字符串是否含有中文 (C#)
- c语言实现字符串逆序
- 【C/C++】用递归实现字符串逆序
- c语言实现字符串的逆序输出
- BCB:字符串是否含有中文
- 字符串的逆序递归实现 C语言实现
- C字符串逆序输出
- c字符串逆序
- C字符串逆序、逆置
- C语言-字符串逆序
- 【C】字符串逆序
- 【C语言】 字符串逆序
- [C练习]字符串逆序
- 用逆序字符串C
- php中判断字符串是否全是中文或含有中文的实现代码
- php中判断字符串是否全是中文或含有中文的实现代码
- PHP版单点登陆实现方案
- css 遮罩层
- Eclipse实用使用技巧
- mapreduce将若干小文件合成大文件
- 个人整理的web开发中常用的表单验证的正则表达式JS
- C++实现含有中文字符串逆序
- php多维数组排序
- ovs-vsctl: unix:/var/run/openvswitch/db.sock: database connection failed (No such file or directory)
- Kibana User Guide [4.2] » Accessing Kibana
- markdown学习
- Eclipse:An internal error occurred during: "Build Project". GC overhead limit exceeded
- 通过System.getProperties()获取系统参数
- dao、domain、service、web 分别是java里面的什么概念
- 使用ImageMagick如何对图片进行全面压缩