c++如何把中文在一段字符串中解析出来???

来源:百度知道 编辑:UC知道 时间:2024/06/15 11:47:42
data是char*,是函数形参,外部传入,有中文字符比如:
"今天日期:2009-09-10"
我想把今天日期:这5个在MESSAGEBOX里显示出来,但是今天日期:显示出来后最后总跟一个乱码是为什么?

char tmp[10];
memcpy(tmp, data, 10);
LPCTSTR buffer = tmp;
MessageBox(buffer,"Information", MB_OK);

你是在visual c++ 中做这个函数吧
那你就该全部使用CString 这种变量,它是支持双字节的字符的
汉字存储使用了两个字节,所以你用char * 来读取自然是乱码
你把所有的char *类型用CString类型来替换试试
CString是一个类 里面定义了很多函数,比如Left Find GetAt 等等字符串的常用操作,很简单的就能解决的你的问题。实在做不出来 可以再M我

一个中文是2个字符,而且都是用到了ASCII码为128-255这部分的,和正常字符(0-127)不冲突,所以你可以用unsigned char *p指向data,然后看*p是否大于127,是的话,将其后一个字符也读过来,两个字符组成一个汉字.

这5个字符占用10字节。 你memcopy来10字节, 后面每写0。 跟一个乱码算少的

数组要大于10