1
TCHAR GetAt( intnIndex ) const; |
返回值:返回标号为nIndex的字符,你可以把字符串理解为一个数组,GetAt类似于[].注意nIndex的范围,如果不合适会有调试错误。
2
CString::GetLength
1 | int GetLength( ) const; |
返回值:返回字符串中的字节计数。
说明:此成员函数用来获取这个CString对象中的字节计数。这个计数不包括结尾的空字符。
对于多字节字符集(MBCS),GetLength按每一个8 位字符计数;即,在一个多字节字符中的开始和结尾字节被算作两个字节。
示例
下面的例子说明了如何使用CString::GetLength。
1 2 3 4 5 | // CString::GetLength示例
CString s( "abcdef");
ASSERT( s.GetLength() == 6 ); |
实例:
使用上述两个函数,可以将编辑框中输入的内容,转成单个字符数据:
void CCStringDlg::OnButton1()
{
// TODO: Add your control notification handler code here
CStatic*pst=(CStatic*)GetDlgItem(IDC_EDIT1);
CString data;
pst->GetWindowText(data); //获取编辑框的字符串
int cCount=0;
cCount=data.GetLength(); //得到字符串的长度
unsigned char * pData = new unsigned char [cCount]; //根据字符串长度定义buffer大小
int f;
for (f=0; f<cCount; f++) //!!!!!!!!!!!!! f必须<cCount,不能是f<=cCount!!!否则会报错!!!!!!!!!!!!!!!!!!!!
{
pData[f]=data.GetAt(f); //将字符串各位置的字符放置到buffer
}
m_Edit2=pData[cCount-1]; //显示输入字符串的最后一个字符,最后一个字符标号是cCount-1,不是cCount!!!!!!!!!!!
SetDlgItemText(IDC_EDIT2,m_Edit2);
}