您的位置:程序门 -> vc/mfc -> 基础类



如何cstring变量逐字读出中文字符


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


如何cstring变量逐字读出中文字符[已结贴,结贴人:windtalker_neo]
发表于:2007-07-27 15:09:51 楼主
程序需要逐字的读出中文字符,请问该怎么处理。
m_strlocationname   =   "京津沪渝冀晋辽吉黑苏浙皖闽赣鲁豫鄂湘粤琼川贵云陕甘青藏桂蒙宁新 ";
m_strlocationname是cstring类型的成员变量,怎么样每次读出一个字。
大哥们帮帮忙!
发表于:2007-07-27 15:14:411楼 得分:5
bool   cstaticex::getnextchar(   cstring   text,   cstring&   str   )
{
if   (   m_textpos   > =   text.getlength()   )
{
m_textpos   =   0;
return   false;
}
#ifdef   unicode
str   =   text.mid(m_textpos,   sizeof(tchar));
#else
tchar   c   =   text[m_textpos];
if(   (c   &   0x80)   ==   0x80   )
str   =   text.mid(m_textpos,   2);
else
str   =   c;
#endif
m_textpos   +=   str.getlength();

return   true;
}

给一个自己写的
发表于:2007-07-27 15:34:442楼 得分:0
我是在wm_paint   消息中逐字显示到各个方框里面的,有没有简单点的方法。
发表于:2007-07-27 16:05:003楼 得分:0
一次取两个字符。
发表于:2007-07-27 16:11:314楼 得分:15
cstring   stroneword=m_strlocationname.left(2);
m_strlocationname.delete(0,2);
循环执行上面两句直到m_strlocationname为空。但有个限制就是m_strlocationname中不能有半角字符。
发表于:2007-07-27 16:19:525楼 得分:0
这不是一样吗?花点时间理解就知道怎样做了。。。
发表于:2007-07-27 16:43:106楼 得分:0
问题解决了,luohongming(lhm)   的方法很简单,也谢谢allen_zhang(影),结贴给分。
发表于:2007-07-27 16:50:337楼 得分:0
有半角的话可以通过判断前一个字节来识别
发表于:2007-07-27 17:12:288楼 得分:0
allen_zhang(影)   的方法是可以判断出全角文字和半角字符的喔!!!


快速检索

最新资讯
热门点击