VC:CString用法整理(转载) – rayna00的专栏

原始环

1.CString::IsEmpty

BOOL IsEmpty( ) const;

现场恢复值:假定CString 女朋友的长是0。,现场恢复非零值;别的,它将现场恢复到0。。

阐明:此分子作用用来与试验有关的一体CString 女朋友是空的吗?。

示例:

上面的容器阐明了方法应用CString::IsEmpty。

// CString::IsEmpty 示例

CString s;

ASSERT( () );

请参阅 CString::GetLength

2.CString::Left

CString Left( int nCount ) const; 

throw( CMemoryException );

现场恢复值:现场恢复的字母行是第一体nCUT字母。。

示例:

CString s( _T(“abcdef”) );

ASSERT( (2) == T(ab) );

3.CString::LoadString

BOOL LoadString( UINT nID );

throw( CMemoryException );

现场恢复值:假定装填资源成现场恢复非零值;别的,它将现场恢复到0。。

nID  窗户 字母行资源ID。

阐明: 此分子作用用于读取NID。 区别窗口 字母行资源,并放入一体已有CString 在目标中。

示例:

上面的容器阐明了方法应用CString::LoadString。

// CString::LoadString 示例

#define IDS_FILENOTFOUND 1

CString s;

if (! ( 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; 
nCUT表现要吸引的字母数。, N1表现要吸引的起端参考评价。

示例:
CString s( _T(“abcdef”) );
ASSERT( ( 2, 3 ) == T(CDE) );

8.CString::ReleaseBuffer

void ReleaseBuffer( int nNewLength = -1 );

参量:nNewLength

字母行中字母数的新长,计算完毕时没空字母。假定遗落

字母行以空字母完毕,此后参量1的Windows 默认值 将把CString 大部分设置为

字母行的出席的长。

阐明:

应用ReleaseBuffer 用GetBuffer完毕这对 分派起缓冲作用的人的应用。假定你了解方法速度减慢了

冲区达到目标字字母行以空字母完毕,你可以省略新长 参量。中频字母

字母行无能力的以空字母完毕。,可以应用nWeLead 称呼委任字母行的长。在召唤

ReleaseBuffer 或其它CString 调整后来,由GetBuffer 现场恢复地址奈何。

示例:

上面的容器阐明了方法应用CString::ReleaseBuffer。

// CString::ReleaseBuffer 示例

CString s;

s = “abc”;

LPTSTR p = ( 1024 );

strcpy(p, ABC // 直线部分应用此起缓冲作用的人

ASSERT( () == 3 ); // 字母行长 = 3

(); // 解除富余的召回,如今P 奈何。

ASSERT( () == 3 ); // 长依然是3。

9.CString::Remove

int CString::Remove ( TCHAR ch );

现场恢复值:现场恢复从字母行中移除的字母数。中频字母行没更改则现场恢复零。

参量:CH 要从字母行中用力打的字母。

当心:此分子作用用于CH 举例从字母行中移除。。与此字母相形,区别大部分写字母。

的。

示例:

// 从句子中用力打小写字母字母'C'

CString str (“This is a 与试验有关的。

int n = ( ”t” );

ASSERT( n == 2 );

ASSERT( str ==“This is a 锿。 ” );

 10.CString::Replace

int Replace( TCHAR 乔尔德, TCHAR chNew );

int Replace( LPCTSTR lpszOld, LPCTSTR lpszNew );

现场恢复值:现场恢复交换字母数。假定遗落符串没更改则现场恢复零。

参量:乔尔德     适合新的 交换字母。

chNew    要用来交换乔尔德 的字母。

lpszOld   落到字母行的拨弄,此字母行克制要为LPSZNEW的字母行。 交换字母。

LpszNew  落到字母行的拨弄,此字母行克制交换的LSPSZORD。 的字母。

阐明:此分子作用交换一体字母与另一体字母。作用的第一体基元在字母行中是新的。

现场交换乔尔德。作用的瞬间原语是LPSZNEW 用称呼委任字母行交换LPSZORD 称呼委任

的子串。

在交换后来,字母行可以上坡或延长。;那是由于LPSZNEW。 和lpszOld 的长

不喜欢比得上。两种版本都是区别大部分写字母的。。

示例:

// 第一体容器,old 新的 长同族关系的。

CString strZap( “C – -” );

int n = (”-”, ”+” );

ASSERT( n == 2 );

ASSERT(strZap == “C++” );

// 瞬间举例,old 新的 不同的长。

CString strBang( “Everybody likes ice hockey” );

n = ( “hockey”, “golf” );

ASSERT( n ==1 );

n = ( “likes” , “plays” );

ASSERT( n == 1 );

n = ( “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( ( ”b” ) == 4 );

12.CString::Right

CString Right( int nCount ) const; 

throw( CMemoryException );

现场恢复值: 现场恢复的字母行是终极一体nCUT字母。

CString s( _T(“abcdef”) );

ASSERT( (2) == T(EF) );

13.CString:: SetAt

void SetAt( int nIndex, TCHAR ch );

 阐明:可以将字母行解说为装饰。,SEAT相似的地[]。当心N参考的射程,假定非正常的,将会涌现调试不公正。。 Ch 代位字母, 把字母放在参考评价上 适合CH

 示例:

CString s( “abc” );

();

ASSERT( s == “cba” );

14.CString::TrimLeft

void TrimLeft( );

void CString::TrimLeft( TCHAR chTarget );

阐明:假定没参量,从靠近的一边用力打字母(\N-T盖印等)。,遭遇战非很的字母。 自然,也可以称呼委任用力打这些字母。 假定称呼委任的参量是字母行,此后用力打在内地一体字母。
\n  换行符
\t  TAB字母

示例1:
CString str = “\n\t a”;

();

STR是A。

 示例2:

CString str = “abbcadbabcadb “;

(ab)

发生”cadbabcadb “

(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( ( s2 ) == -1 );

ASSERT( ( “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 ); 

CString( LPCTSTR lpch, int nLength );

CString( const unsigned char* psz ); 

CString( LPCWSTR lpsz );

CString( LPCSTR lpsz );

示例:

CString s1;                     

CString s2( “cat” );              

CString s3 = s2;                 

CString s4( s2 + ” ” + s3 );        

CString s5( ”x” );                      // s5 = “x”

CString s6( ”x”, 6 );                   // s6 = “xxxxxx”

CString s7((LPCSTR)ID_FILE_NEW);        // s7 = “Create a new document”

CString city = “Philadelphia”;

21.CString::Delete

int Delete( int nIndex, int nCount = 1); 

现场恢复值:用力打前字母行的长

N参考是要用力打的第一体字母,nCalt是一次用力打分别的字母。主要成分我的试验发生:当nCuT>要用力打的字母行的最大长时(GETCOUNT) – NDeCK会笔误。,当nCIT太大时,当字母缺漏时,左右作用不抬出去。

示例:

CString str1,str2,str3;

char a;

str1 = “nihao”;

str2 = “nIhao”;

int x;

// int i=(str1 == str2);      

(2,3);

假定nCUT(3) > GetCount() – nIndex (5-2)不公正将被抬出去

22.CString::Empty

Void Empty( );

现场恢复值:没现场恢复值  排空作业

示例:

CString s( “abc” );

();

ASSERT( ( ) == 0 );

23.CString::Find

int Find( TCHAR ch ) const;

int Find( LPCTSTR lpszSub ) const;

int Find( TCHAR ch, int nStart ) const;

int Find( LPCTSTR lpszSub, int nStart ) const;

现场恢复值:  假定不婚配现场恢复 -1;  参考0 开端; nStar 表现参考值NSTART 角色搜索从Uuuuuuuuuu开端 ,

换句话说,克制参考NSTART字母的字母行。

示例:

CString s( “abcdef” );

ASSERT( ( ”c” ) == 2 );

ASSERT( ( “de” ) == 3 );

Cstring str(“The stars are aligned”);

Ing n = (”e”,5);

断言(n) == 12)

24.CString::FindOneOf

int Find在内地之一 LPCTSTR lpszCharSet ) const;

现场恢复值:  假定不婚配现场恢复 -1;  参考0 开端

当心::现场恢复此字母行中第一体在lpszCharSet中也包孕字母而且从零开端的参考值

示例:

CString s( “abcdef” );

ASSERT( 在内地之一 “xd” ) == 3 ); // ”d” is first 竞赛。

25.CString::Format

void Format( LPCTSTR lpszFormat, … );

void Format( UINT nFormatID, … );

参量:lpszFormat  体式把持字母行

nFormatID  字母行识别符

示例:

CString str;

(“%d”,13); 

在这点上,Str是13。

26.CString::GetAt

TCHAR GetAt( int nIndex ) const;

现场恢复值:现场恢复监视为N参考的字母,你可以将字母行解说为装饰。,GETAT相似的地[]。当心N参考的射程,假定非正常的,将会涌现调试不公正。。

27.CString::GetBuffer

LPTSTR GetBuffer( int nMinBufLength );

现场恢复值:落到女朋友(空字母完毕)字母把缓冲液加入的LPTSTR 拨弄。

参量:nMinBufLength

字母把缓冲液加入在字母数附和的最小生产率。此值不包孕完毕时间字母的空格。。

阐明:此分子作用现场恢复一体落到CString 落到女朋友内心字母起缓冲作用的人的拨弄。现场恢复的LPTSTR 缺点常数。,乃可以容许直线部分修正CString 的满足。假定你应用GetBuffer
现场恢复的拨弄更改字母行的满足。,你不可避免的在应用其它的CString 在分子作用先前召唤ReleaseBuffer 作用。

在召唤ReleaseBuffer 后来,由GetBuffer 现场恢复地址可能性奈何。,由于其它的CString 调整可能性会造成CString 起缓冲作用的人一部派。假定你没更改此CString
的长,起缓冲作用的人无能力的重行分派。当此CString 当女朋友被毁坏时,缓冲存储区将志愿地解除。

当心:假定你自己了解线丝的长,这么你不必不可少的事物在终曲添加空字母。。无论如何,当应用解除起缓冲作用的人时 解除起缓冲作用的人,不可避免的称呼委任终极的字母行长。。假定在终曲添加空字母,必不可少的事物解除起缓冲作用的人
长参量传输-1 ,ReleaseBuffer Strlen将在左右起缓冲作用的人抬出去 决定其长。

示例:

// CString::GetBuffer 容器

CString s( “abcd” );

#ifdef _DEBUG

afxDump << "CString s " << s << "\n";

#endif

LPTSTR p = ( 10 );

strcpy( p, “Hello” ); // 直线部分参观CString 女朋友。

( );

#ifdef _DEBUG

afxDump << "CString s " << s << "\n";

#endif

28.CString::GetLength

int GetLength( ) const;

现场恢复值:现场恢复字母行达到目标音节计数。

阐明:此分子作用用来获取左右CString 在目标达到目标音节计数。此计数不包孕终曲的空字母。。

因为多音节字母集(MBCS),GetLength 主要成分每8个 位字母计数;即,多音节字母达到目标起端音节和完毕音节被计算为两个音节。。

示例

上面的容器阐明了方法应用CString::GetLength。

// CString::GetLength 示例

CString s( “abcdef” );

ASSERT( () == 6 );

29.CString::Insert

int Insert( int nIndex, TCHAR ch ); 

int Insert( int nIndex, LPCTSTR pstr );

现场恢复值:现场恢复修正后的长,Nindex是一体字母(或字母行)在INS后来的参考号的示例。

示例:

CString str( “HockeyBest”);

 int n = ( 6, “is” );

 ASSERT( n == ( ) ); 

printf( “1: %s\n”, ( LPCTSTR ) str );

 n = ( 6, ” ” ); 

ASSERT( n == ( ) ); 

printf ( “2: %s\n”, (LPCTSTR) STR );

 n = (555, ‘1’);

ASSERT( n == ( ) );

 printf ( “3: %s\n”, ( LPCTSTR ) str );

输入

1. Hockeyis Best

2. Hockey is Best

3. Hockey is Best!

发表评论

电子邮件地址不会被公开。 必填项已用*标注