读书人

汉字字符串截取

发布时间: 2012-04-06 12:22:24 作者: rapoo

汉字字符串截取,请教高手!
我有一个字符串里面有各种各样的字符还有汉字,如果我想截取其中的一部分,请问如何判断我截取的最后是否是汉字。请高手指点!

[解决办法]
#include <iostream>
#include <string.h>
using namespace std;

void fun(char* c, int sep)
{
//char*c = "abc我们asf ";
//int sep = 4;
int i=0;
while(i <sep)
{
if(c[i]&0x80)
{
++sep;
++i;
}
++i;
}
char c1[20]= " ";
strncpy(c1,c,sep);
cout < <c1 < <endl;
}
int main( int argc, char *argv[] )
{
fun( "abcdef方法 ",4);//abcd
fun( "abc我们sdf ",4);//abc我
fun( "啊我a我df ",4);//啊我a我
return 0;
}

[解决办法]
转换为unicode编码,每个字符固定使用2个字节。根据汉字的区域,过滤汉字和非汉字,然后再转化回去
[解决办法]
汉字是按区位码读入的,所以判断你读入的字符串最后两个是否是正好属于汉字区码和位码的范围即可.

读书人网 >C语言

热点推荐