CString字符串处理函数的应⽤CString ⾥的⼀些函数与VB⾥字符串处理的函数很多都是类似的。
1.CString::IsEmpty
BOOL IsEmpty( ) const;
返回值:如果CString 对象的长度为0,则返回⾮零值;否则返回0。
说明:此成员函数⽤来测试⼀个CString 对象是否是空的。
⽰例:
下⾯的例⼦说明了如何使⽤CString::IsEmpty。
// CString::IsEmpty ⽰例
CString s;
ASSERT( s.IsEmpty() );
请参阅 CString::GetLength
2.CString::Left
CString Left( int nCount ) const;
throw( CMemoryException );
返回值:返回的字符串是前nCount个字符。
⽰例:
CString s( _T("abcdef") );
ASSERT( s.Left(2) == _T("ab") );
3.CString::LoadString
BOOL LoadString( UINT nID );
throw( CMemoryException );
返回值:如果加载资源成功则返回⾮零值;否则返回0。
nID ⼀个Windows 字符串资源ID。
说明:此成员函数⽤来读取⼀个由nID 标识的Windows 字符串资源,并放⼊⼀个已有CString 对象中。⽰例:
下⾯的例⼦说明了如何使⽤CString::LoadString。
// CString::LoadString ⽰例
#define IDS_FILENOTFOUND 1
CString s;
if (! s.LoadString( IDS_FILENOTFOUND ))
4.CString::MakeLower
void MakeLower( ); //改变字符的⼩写
5.CString::MakeReverse
void MakeReverse( ); //字符倒置
6.CString::MakeUpper
void MakeUpper( ); //改变字符的⼤写
7.CString::Mid
CString Mid( int nFirst ) const;
CString Mid( int nFirst, int nCount ) const;
nCount代表要提取的字符数, nFirst代表要提取的开始索引位置
⽰例:
CString s( _T("abcdef") );
ASSERT( s.Mid( 2, 3 ) == _T("cde") );
8.CString::ReleaseBuffer
void ReleaseBuffer( int nNewLength = -1 );
参数:nNewLength
此字符串的以字符数表⽰的新长度,不计算结尾的空字符。如果这个字
符串是以空字符结尾的,则参数的缺省值-1 将把CString 的⼤⼩设置为
字符串的当前长度。
说明:
使⽤ReleaseBuffer 来结束对由GetBuffer 分配的缓冲区的使⽤。如果你知道缓冲区中的字符串是以空字符结尾的,则可以省略nNewLength 参数。如果字符串不是以空字符结尾的,则可以使⽤nNewLength 指定字符串的长度。在调⽤ReleaseBuffer 或其它CString 操作之后,由GetBuffer 返回的地址是⽆效的。⽰例:
下⾯的例⼦说明了如何使⽤CString::ReleaseBuffer。
// CString::ReleaseBuffer ⽰例
CString s;
s = "abc";
LPTSTR p = s.GetBuffer( 1024 );
strcpy(p, "abc"); // 直接使⽤该缓冲区
ASSERT( s.GetLength() == 3 ); // 字符串长度 = 3
s.ReleaseBuffer(); // 释放多余的内存,现在p ⽆效。
ASSERT( s.GetLength() == 3 ); // 长度仍然是3
9.CString::Remove
int CString::Remove ( TCHAR ch );
返回值:返回从字符串中移⾛的字符数。如果字符串没有改变则返回零。
参数:ch 要从⼀个字符串中移⾛的字符。
说明:此成员函数⽤来将ch 实例从字符串中移⾛。与这个字符的⽐较是区分⼤⼩写的。
⽰例:
// 从⼀个句⼦中移⾛⼩写字母'c':
CString str (“This is a test.”);
int n = str.Remove( 't' );
ASSERT( n == 2 );
ASSERT( str ==“This is a es. ” );
10.CString::Replace
int Replace( TCHAR chOld, TCHAR chNew );
int Replace( LPCTSTR lpszOld, LPCTSTR lpszNew );
返回值:返回被替换的字符数。如果这个字符串没有改变则返回零。
参数:chOld    要被chNew 替换的字符。
chNew    要⽤来替换chOld 的字符。
lpszOld  ⼀个指向字符串的指针,该字符串包含了要被lpszNew 替换的字符。LpszNew ⼀个指向字符串的指针,该字符串包含了要⽤来替换lpszOld 的字符。
说明:此成员函数⽤⼀个字符替换另⼀个字符。函数的第⼀个原形在字符串中⽤chNew 现场替换chOld。函数的第⼆个原形⽤lpszNew 指定的字符串替换lpszOld 指定
的⼦串。
在替换之后,该字符串有可能增长或缩短;那是因为lpszNew 和lpszOld 的长度
不需要是相等的。两种版本形式都进⾏区分⼤⼩写的匹配。
⽰例:
// 第⼀个例⼦,old 和new 具有相同的长度。
CString strZap( “C - -” );
int n = strZap.Replace('-', '+' );
ASSERT( n == 2 );
ASSERT(strZap == “C++” );
// 第⼆个例⼦,old 和new 具有不同的长度。
CString strBang( “Everybody likes ice hockey” );
n = strBang.Replace( “hockey”, “golf” );
ASSERT( n ==1 );
n = strBang.Replace ( “likes” , “plays” );
ASSERT( n == 1 );
n = strBang.Replace( “ice”, NULL );
ASSERT( n == 1 );
ASSERT( strBang == “Everybody plays golg” );
/
/ 注意,现在在你的句⼦中有了⼀个额外的空格。
// 要移⾛这个额外的空格,可以将它包括在要被替换的字符串中,例如,“ice ”。
11.CString::ReverseFind
int ReverseFind( TCHAR ch ) const;
返回值: 返回此CString 对象中与要求的字符匹配的最后⼀个字符的索引;如果没有
到需要的字符则返回-1。
参数: ch 要搜索的字符。
说明:此成员函数在此CString 对象中搜索与⼀个⼦串匹配的最后⼀个字符。此函数
类似于运⾏时函数strrchr。
⽰例:处理字符串的常用函数
// CString::ReverseFind ⽰例
CString s( "abcabc" );
ASSERT( s.ReverseFind( 'b' ) == 4 );
12.CString::Right
CString Right( int nCount ) const;
throw( CMemoryException );
返回值:返回的字符串是最后nCount个字符。
CString s( _T("abcdef") );
ASSERT( s.Right(2) == _T("ef") );
13.CString:: SetAt
void SetAt( int nIndex, TCHAR ch );
说明:可以把字符串理解为⼀个数组,SetAt类似于[].注意nIndex的范围,如果不合适会有调试错误。 Ch 更替字符, 把nIndex位置上的字符变成ch
⽰例:
CString s( "abc" );
s.MakeReverse();
ASSERT( s == "cba" );
14.CString::TrimLeft
void TrimLeft( );
void CString::TrimLeft( TCHAR chTarget );
说明:如果没有参数,从左删除字符(nt空格等),⾄到遇到⼀个⾮此类字符. 当然你也可以指定删除那些字符. 如果指定的参数是字符串,那么遇上其中的⼀个字符就删除.
n 换⾏符
t TAB字符
⽰例1:
CString str = "nt a";
str.TrimLeft();
str为“a”;
⽰例2:
CString str = "abbcadbabcadb ";
str.TrimLeft("ab");
结果"cadbabcadb "
str.TrimLeft("ac");
结果"bcadbabcadb "
15.CString::TrimRight
void TrimRight( );
void CString::TrimRight( TCHAR chTarget );
void CString::TrimRight( LPCTSTR lpszTargets );
说明:⽤法类似于上⾯。
16.CString::Compare
int Compare( LPCTSTR lpsz ) const;
返回值:字符串⼀样返回0,⼩于lpsz 返回-1,⼤于lpsz 返回1, 区分⼤⼩字符
⽰例:
CString s1( "abc" );
CString s2( "abd" );
ASSERT( s1.Compare( s2 ) == -1 );
ASSERT( s1.Compare( "abe" ) == -1
17.CString::CompareNoCase
int CompareNoCase( LPCTSTR lpsz ) const;
返回值:字符串⼀样返回0,⼩于lpsz 返回-1,⼤于lpsz 返回1,不区分⼤⼩字符
18.CString::Collate
int Collate( LPCTSTR lpsz ) const;
同CString::Compare
19.CString::CollateNoCase
int CollateNocase( LPCTSTR lpsz ) const;
同CString::CompareNoCase
20.CString::CString      //构造函数
CString( );
CString( const CString& stringSrc );
CString( TCHAR ch, int nRepeat = 1 );

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。