首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

c++如何获取CString类型的字符串中的字符

2012-04-05 
c++怎么获取CString类型的字符串中的字符?CStirng str |abc|cc|我的字符串||我需要获取字符串中的字符

c++怎么获取CString类型的字符串中的字符?
CStirng str = "|abc|cc|我的字符串||"
我需要获取字符串中的字符,使用str.GetAt(iPos)这个函数,英文的可以正常获取,但是碰到中文字符,就得不到正常的字符,为什么?我需要怎么样,才能获取中文字符??求助

[解决办法]
你先确定一个中文占几个字节,然后在想办法取。
[解决办法]
ANSI中非英文字符占两个字节,UNICODE中所有字符都占两个字节

简单的方法是算出你要的那个中文字符占哪两个字节然后取到另一个字符数组/字符串里单独处理
根本的方法是楼主去好好了解一下UNICODE是什么玩意
[解决办法]

C/C++ code
    CString str = TEXT("|abc|cc|我的字符串||");    TCHAR myStr;    myStr = str.GetAt(8);
[解决办法]
Visual Studio是默认的UNICODE,
VC6默认是ansi
[解决办法]
主要原因是中文字符和英文字符存储时所点的字节数不同
[解决办法]
一个中文的字节数是一个字符的两倍,按字符读取的时候中文当然不能正常读取啊
[解决办法]
项目属性里面有个常规设置,里面有个字符集设置,这里可以选择你想要的方式,我一般都是使用多字节字符集,没有遇到过楼主的问题,建议楼主可以试试
[解决办法]
使用Unicode编码,CString::Tokenize();

热点排行