CString類常用操作

2022-08-29 21:21:24 字數 2657 閱讀 8757

1. 簡介

乙個cstring物件由可變長度的字元陣列構造,由pxstr m_pszdata成員變數維護物件的位址資訊。cstring物件可以任意替換const char*和lpctstr型別的函式引數,而不需要強制轉換。

2. 建構函式

cstring建構函式有多種形式,常見的宣告如下:

cstring( );

cstring( const cstring& stringsrc );

cstring( const

unsigned

char* psz );

cstring( lpcstr lpsz );

例如:

//無參建構函式

cstring str1;

//拷貝構造

cstring str2(str1);

cstring str3 = str1;

cstring str4 = "cstring obj";

cstring str5("cstring obj");

tchar szobj = "cstring obj";

cstring str6(szobj);

3. 字串陣列

4. 比較

例如:

cstring s1( "abc" );

cstring s2( "abd" );

// operator is overloaded for both.

assert( s1 < s2 );

// cstring and char*

assert( "abc"

< s1 );

assert( s2 > "abe" );

cstring s1( "abc" );

cstring s2( "abd" );

// 與乙個cstring比較。

assert( s1.comparenocase( s2 ) == -1 );

// 與lptstr字串比較。

assert( s1.compare( "abe" ) == -1 );

5. 提取

cstring s( _t("abcdef") );

assert( s.mid( 2, 3 ) == _t("cde") );

cstring s( _t("abcdef") );

assert( s.left(2) == _t("ab") );

cstring s( _t("abcdef") );

assert( s.right(2) == _t("ef") );

6. 其他轉換

例如:

cstring strbefore("!@#!@123!@#");

cstring strafter = strbefore;

strafter.trimleft("!@#") ;

printf ("before: \"%s\"\n",(lpctstr) strbefore );

printf ("after: \"%s\"\n",(lpctstr) strafter );

結果:字串「!@#!@123!@#」變成了「123!@#」。

7. 搜尋

// cstring::find( tchar ch )

cstring s( "abcdef" );

assert( s.find( 'c' ) == 2 );

assert( s.find( "de" ) == 3 );

// cstring::find(tchar ch,int nstart)

cstring str("the stars are aligned");

int n = str.find('e',5);

assert(n == 12)

cstring s( "abcabc" );

assert( s.reversefind( 'b' ) == 4 );

8. 緩衝區訪問

說明:

getbuffer返回乙個指向cstring物件的內部字元緩衝區的指標。返回的lptstr不是const,因此可以允許直接修改cstring的內容。

如果使用由getbuffer返回的指標來改變字串的內容,你必須在使用其它的cstring成員函式之前呼叫releasebuffer函式。

cstring s;

s = "abc";

lptstr p = s.getbuffer(1024);

// 直接使用該緩衝區

strcpy(p, "abc");

// 字串長度 = 3

assert( s.getlength() == 3 );

// 釋放多餘的記憶體,現在p無效。

s.releasebuffer();

// 長度仍然是3

assert( s.getlength() == 3 );

C String類常用操作

1.string.compare s1,s2 比較 按字母順序後邊的大於前邊的 s1s2 return1.console.writeline string.compare aa aa tostring 1console.writeline string.compare aa aa true tost...

C string常用操作

1.獲取字串長度 string str 1234567 int len str.length len 72.字串比較原理 兩個字串自左向右逐個字元相比 按ascii值大小相比較 直到出現不同的字元或遇 0 為止,如 15 123 若是遇到 0 結束比較,則長的子串大於短的子串,如 9856 985 ...

C string常用操作

string是乙個類,char是乙個指標 string 封裝了char,管理該字串,是個char 的容器 string封裝了很多實用的方法 如 查詢,拷貝,刪除,替換,插入等 string不需要考慮記憶體釋放和越界問題 string轉char string str deffre 注意 這裡要加上 c...