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...