- //A.構造函數,CStringT提供了19個構造函數,其中一個旨在.NET平臺托管C++工程中才被編譯,我只寫幾個我覺得常用的
- //1.默認構造函數,生成一個""字符串
- CString cstr1;
- //2.拷貝構造函數
- CString cstr2(cstr1);
- //3.從LPCSTR構造
- LPCSTR myCStr = "Hello CString";
- CString cstr3(myCStr);
- //4.從LPCWSTR構造
- LPCWSTR myCWStr = L"Hello CString";
- CString cstr4(myCWStr);
- //5.指定n個c字符構造
- char mycharacter = 'x';
- CString cstr5(mycharacter,10); //構造10個x的字符串
- //6.從指定n個w字符構造
- wchar_t mywcharacter = '測';
- CString cstr6(mywcharacter,5);
- //7.從unsigned char(也就是MBCS)構造
- unsigned char* pMbcs = NULL;
- CString cstr7(pMbcs);
- //8.從VARIANT構造
- BSTR bstr = SysAllocString(L"Hello World");
- VARIANT var;
- var.bstrVal = bstr; //var.bstrVal = L"Hello World"cstr8的字符信息不對。
- var.vt = VT_BSTR;
- SysFreeString(bstr);
- CString cstr8(var);
-
- //B.CString提供了8個賦值操作符,我只寫我覺得幾個常用的
- //1.CString到CString
- cstr8 = cstr7;
- //2.c char到CString
- cstr8 = mycharacter;
- //3.w char到CString
- cstr8 = mywcharacter;
- //4.uc char到CString
- cstr8 = pMbcs;
- //5.VARIANT到CString
- cstr8 = var;
-
- //C.字符串連接,我只寫幾個我覺得常用的
- //1.operator+ char
- cstr8 += mycharacter;
- //2.operator+ unsigned char
- cstr8 += unsigned char('c');
- //3.operator+ wchar_t
- cstr8 += mywcharacter;
- //4.operator+ VARIANT
- cstr8 += var;
- //CString + CString
- cstr8 += cstr7;
-
- //D.大小寫轉換
- cstr8.MakeUpper(); //轉大寫
- cstr8.MakeLower(); //轉小寫
-
- //E.CString定義了比較完整的比較操作,這有==、!=、<等等
-
- //F.操作
- //1.查找
- cstr8.Find('o'); //查找第一個'o'
- cstr8.Find('o',5); //從左起第5個查
- cstr8.FindOneOf(L"aeiou"); //查找集合中的任一個
- cstr8.ReverseFind('o'); //反向查找
- //2.裁剪
- cstr8.Trim(); //裁剪開始+末尾空格
- cstr8.Trim('o'); //裁剪左右'o'
- cstr8.Trim(L"aeiou"); //裁剪左右任何在集合中的字符
- cstr8.TrimLeft();
- cstr8.TrimLeft('o');
- cstr8.TrimLeft(L"aeiou");
- cstr8.TrimRight();
- cstr8.TrimRight('o');
- cstr8.TrimRight(L"aeiou");
- //3.取回目標字符串中被指定字符串包含的子串
- cstr8 = L"hello worldhello world";
- cstr7 = cstr8.SpanIncluding(L"mhellohaha");
- //4.取回原串,直到目標串中的任意一個字符出現
- cstr7 = cstr8.SpanExcluding(L"aiuw");
- //5.Inert
- cstr8.Insert(5,L"haha"); //指定位置插入字符串
- cstr8.Insert(6,'h'); //指定位置插入字符
- //6.Delete、Remove
- cstr8.Delete(5,2); //從指定位置(5)刪除若干個(2)字符
- cstr8.Remove('o'); //移除所有'o'
- //7.Replace
- cstr8.Replace('o','a'); //把'o'替換為'a'
- cstr8.Replace(L"haha",L"toto"); //字符串替換
- //9.提取子串
- CString cstrRet;
- cstrRet = cstr8.Left(5); //提取最左n個字符
- cstrRet = cstr8.Mid(10); //從第n個字符到結尾
- cstrRet = cstr8.Mid(10,15); //提取指定區間字符串
- cstrRet = cstr8.Right(11); //最右邊n個字符
- //10.反轉
- cstr8.MakeReverse();
- //11.以特定分隔符提取
- int refn = 0;
- cstrRet = cstr8.Tokenize(L"aeiou",refn); //可以使用refn遞歸找到所有被分割的子串
- //12.載入dll或exe中的字符串資源
- cstr8.LoadString(100); //100為資源id,還有其他重載,略去
- //13.獲取環境變量
- cstr8.GetEnvironmentVariable(L"windir");
- //14.格式化
- cstr8.Format(L"haha,now is%d with %s",100,L"old"); //format string 也可以是資源id
-
- //G.與BSTR的交互
- BSTR bstr1 = cstr8.AllocSysString();
- BSTR bstr2 = cstr8.SetSysString(&bstr1);
- SysFreeString(bstr2);
posted on 2013-03-18 21:58
聶文龍 閱讀(1044)
評論(0) 編輯 收藏 引用 所屬分類:
Visual C++