VC MFC下 定义 CString str 怎样获取str的第二个和第三字符(用啥函数)?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VC MFC下 定义 CString str 怎样获取str的第二个和第三字符(用啥函数)?相关的知识,希望对你有一定的参考价值。

CString s=_T("123456");
s.GetAt(0)// 第一个字符 '1'
s.GetAt(1)// 第二个字符 '2'
s.GetAt(2)// 第三个字符 '3'
//以此类推
可以用char获取
参考技术A GetAt 返回字符
或者Mid 返回字符串
参考技术B //TCHAR GetAt( int nIndex )
char a=str. GetAt( 2 );
char b=str. GetAt( 3 );
参考技术C CString::Mid
CString::Mid说明:此成员函数从此CString对象中提取一个长度为nCount个字符的子串,从nFirst(从零开始的索引)指定的位置开始。此函数返回一个对所提取的字符串的拷贝。Mid类似于Basic MID$函数(除了索引是从零开始的)。
示例:下面的例子说明了如果如何使用CString::Mid。
// CString::Mid示例:
CString s( _T("abcdef") );
ASSERT( s.Mid( 2, 3 ) == _T("cde") );

vc++ mfc 中怎样判断CString中是不是含有汉字

大哥大姐们,用CString::GetAt()的方法我试过了,但是貌似行不通,能不能贴段代码啊?

参考技术A 貌似不行,mfc编码采用的是ascii,所以无法判断cstring中是否有汉字. 参考技术B 先把MBCS字符串转换成Unicode字符串,再判断就ok了。
转换方法可参考我空间里的文章后半部分:http://hi.baidu.com/%BA%CE%B4%A6%B4%E3%CE%E2%B9%B3/blog/item/91080e3234604ef01a4cfff3.html本回答被提问者采纳
参考技术C 查看字节最高位是1还是0,具体做法是str.GetAt()&0xF0如果为真则表示这个字符和下个字符是一个中文字符。否则反之 参考技术D bool containChinese(CString src)

char *szSRC = src.GetBuffer(src.GetLength());
for(int i = 0; i < src.GetLength(); ++i)

if(IsDBCSLeadByte(szSRC[i]))

rc.ReleaseBuffer();
return true;


src.ReleaseBuffer();
return false;
第5个回答  2010-06-22 char chText = CString::GetAt(i);
if (chText < 0)
AfxMessageBox("中文");
else
AfxMessageBox("非中文");

以上是关于VC MFC下 定义 CString str 怎样获取str的第二个和第三字符(用啥函数)?的主要内容,如果未能解决你的问题,请参考以下文章

Visual Studio 2008中MFC程序cstring转成char??急!!!大家帮下啊

自定义字符类

MFC,CString与intdouble 转换

MFC中如何吧CString类型转换为double或int型??

MFC中如何吧CString类型转换为double或int型?

VC++ MFC编程,如何获取当前系统时间