CString类
一、常用成员函数
1.int GetLength()const;
说明:获取CString类对象包含字符串的长度(字符数)。
2.BOOL IsEmpty()const;
说明:测试CString类对象包含的字符串是否为空。
3.void Empty();
说明:使CString类对象包含的字符串为空字符串。
4.TCHAR GetAt(int nIndex )const;
说明:获得字符串指定位置处的字符。
5.TCHAR operator [](int nIndex )const;
说明:获得字符串指定位置处的字符,作用和GetAt()一样。
6.void SetAt(int nIndex, TCHAR ch );
说明:设定字符串指定位置处的字符。
7.operator LPCTSTR ()const;
说明:返回指向储存在CString类对象内的字符串指针。
8.Mid
Mid函数有两个重载函数:
CString Mid(int nFirst )const; throw(CMemoryException );
获取从nFirst位置开始的子串。
CString Mid(int nFirst, int nCount )const; throw(CMemoryException );
获取从nFirst位置开始包含nCount个字符的子串。
9.CString Left(int nCount )const;throw(CMemoryException );
说明:获取字符串左边nCount长度的字符串。
10.CString Right(int nCount )const; throw(CMemoryException );
说明:获取字符串右边nCount长度的字符串。
11.CString SpanIncluding(LPCTSTR lpszCharSet )const;throw (CMemoryException );
说明:从字符串中提取包含在指定字符集lpszCharSet中的字符的子串。它从字符串的第一个字符开始,直到遇到不属于lpszCharSet中的字符为止。
12.CString SpanExcluding(LPCTSTR lpszCharSet )const;throw (CMemoryException );
说明:从字符串中提取不包含在指定字符集lpszCharSet中的字符的子串。13.MakeUpper
将字符串中所有的字符全部转化成大写形式。
14.MakeLower
将字符串中所有的字符全部转化成小写形式。
15.MakeReverse
将字符串倒置,即将字符的顺序颠倒,第一个字符变成最后一个字符。
16.int Replace(TCHAR chOld, TCHAR chNew );
int Replace(LPCTSTR lpszOld, LPCTSTR lpszNew );
说明:将字符串中的字符chOld或字符子串lpszOld替换成新的字符chNew或字符串lpszNew。
17. void CString::T rimLeft(TCHAR chT arget );
void CString::T rimLeft(LPCTSTR lpszT argets );
说明:删除字符串左边开头的字符或字符子串,参数缺省时删除左边的空格。
18.void CString::T rimRight(TCHAR chT arget );
void CString::T rimRight(LPCTSTR lpszTargets );
说明:删除字符串右边开头的字符或字符子串,参数缺省时删除右边的空格。
19.Find
原型:
int Find(TCHAR ch )const;
int Find(LPCTSTR lpszSub )const;
int Find(TCHAR ch, int nStart )const;
int Find(LPCTSTR pstr, int nStart )const;
说明:在字符串中查指定的字符或字符串。参数ch为要查的字符;lpszSub为要查的字符子串;nStart指定查的起始位置,如缺省为从最左边开始;pstr指向欲查子串的指针。
20.ReverseFind
原型:int ReverseFind(TCHAR ch )const;
cstring转为int说明:返回字符串中最后一个和指定的字符匹配的字符的下标。
21.FindOneOf
原型:int FindOneOf(LPCTSTR lpszCharSet )const;
说明:在字符串中查第一个和指定的字符集lpszCharSet中任何一个字符匹配的字符的位置。
22.比较运算符
CString类重载了“==”、“!=”、“>=”、“>”、“<=”、“<”等比较运算符,可用于两个字符串间的各种比较运算,比较时区分大小写。
23.Compare
原形:int Compare(LPCTSTR lpsz )const;
说明:比较两个字符串,如果两个字符串相等,返回值等于0;如果本对象大于参数字符串,返回值大于0;如果本对象小于参数字符串,返回值小于0,比较时区分大小写。24.CompareNoCase
原型:int CompareNoCase(LPCTSTR lpsz )const;
说明:与Compare函数类似,不同的是在忽略字符大小写的情况下比较两个字符串。25.operator =
说明:将一个新的值赋予CString对象。
26.operator +
说明:将两个字符串合并成一个新的字符串。在两个参数中必须有一个是CString类型的,而另一个参数可以是字符、字符指针或CString类型对象。
27.operator +=
说明:在一个字符串的后面再添加一个字符串或一个字符。
二、例题
例1:连结字符串
CString m_str1="工作";
CString m_str2="正常";
CString m_str3=m_str1+m_str2;
执行第三行后,m_str3的值应该是“工作正常”。
例2:比较字符串
CString m_str1="a";
CString m_str2="b";
int result=m_str1.Compare(m_str2);
if(result=0)
AfxMessageBox("两者相同");
else if(result>0)
AfxMessageBox("m_str1大于m_str2");
else
AfxMessageBox("m_str1小于m_str2");
运行结果在信息框中显示“m_str1小于m_str2”。两个字符串比较大小时从第一个字母开始,按照对应的ASCII值比较。如果第一个字母相同,再比较下一个字母。依次往下直到比较出大小为止。
例3:提取字符串
CString m_str1="abcde";
CString m_str2=m_str1.Left(1)+m_str1.Mid(2,1)+m_str1.Right(1);
AfxMessageBox(m_str2);
运行结果在信息框中显示m_str2的内容“ace”。m_str1.Left(1)得到m_str1的最左边的一个字符“a”,m_str1.Mid(2,1)从m_str1中取得从索引为2开始的一个字符“c”,m_str1.Right (1)得到m_str1的最右边的一个字符“e”。
例4:查字符串
CString m_str1="abcdef";
CString m_str2="deq";
int index=m_str1.Find(m_str2);
if(index>=0)
{
char s[10];
wsprintf(s,"匹配字符的下标为%d",index);
MessageBox(s);
}
else
MessageBox("没有匹配字符");
运行结果在信息框中显示“没有匹配字符”。m_str1.Find(m_str2)在m_str1中查m_str2的内容“deq”,由于未到返回–1。
例5:变换字符串
CString m_str="ABCabc ";
m_str.TrimLeft();
m_str.TrimRight();
m_str.MakeUpper();
MessageBox(m_str);
运行结果在信息框中显示“ABCABC”。m_str.TrimLeft()和m_str.TrimRight()分别去掉m_str左边和右边的空格,m_str.MakeUpper()将m_str中的所有字母转换成大写。
例6:转化为字符串
把CString 转化为LPTSTR和LPCTSTR可分别用如下方法(LPTSTR)(LPCTSTR)(_T(CString))
(LPCTSTR)(_T(CString))
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论