Mfc

MFCプログラミング用のCStringクラス



Cstring Class Mfc Programming



これは、CStringの使用の要約です。 MFCプログラミングでは、CStringが一般的に使用されるクラスです。以下はそれを紹介します:

まず、コンストラクター
クラスとして、まず第一に、最初のステップは、たとえばCString(const CString&stringSrc)を構築することでなければなりません。



CString str1(__T('www.daheng-image.com'))

既存のCStringオブジェクトstringSrcの内容をCStringオブジェクトにコピーします。例えば

CString str1(_T('www.daheng-image.com')) // Copy the constant string to str1 CString str2(str1) // Copy the content of str1 to str2

2 2番目のコンストラクターCString(LPCTSTR lpch、int nLength)、例は次のとおりです。



CString str(_T('www.daheng-image.com'),3) // The content of the constructed string object is 'www'

3 3番目のコンストラクターCString(TCHAR ch、int nLength = 1)

CString str(_T('w'),3) // str is 'www'

次に、CStringクラスの大文字と小文字の変換および順次変換関数
CString&MakeLower()
文字列内のすべての大文字を小文字に変換します。

CString&MakeUpper()
文字列内のすべての小文字を大文字に変換します。



CString&MakeReverse()

文字列内のすべての文字の順序を逆にします。

例えば:

CString str(_T('shirunfa')) str.MakeLower() // str is 'shirunfa' str.MakeUpper() // str is 'SHIRUNFA' str.MakeReverse() // str is 'AFNURIHS'

第三に、CStringオブジェクトの接続

複数のCStringオブジェクトの接続は、オーバーロード演算子+、+ =を介して実現できます。例えば:

CString str(_T('daheng-image')) // The content of str is 'daheng-image' str = _T('www.') + str + _T('.') // str is 'www.daheng-image.' str += _T('com') // str is 'www.daheng-image.com' str.append(__T('.cpm')) // str is daheng-image.com

第四に、CStringオブジェクトの比較

CStringオブジェクトの比較は、==、!などのオーバーロードされた演算子を使用して実行できます。 = 、、 =、など。CompareおよびCompareNoCaseメンバー関数を使用して実装することもできます。
int Compare(PCXSTR psz)const

CStringオブジェクトをpsz文字列と比較します。それらが等しい場合、0を返します。psz未満の場合、戻り値は0未満です。pszより大きい場合、戻り値は0より大きくなります。

int CompareNoCase(PCXSTR psz)const throw()

この関数は、大文字と小文字が区別されないことを除いて、Compare関数に似ています。

例えば:

CString str1 = _T('Shirunfa') CString str2 = _T('shirunfa') if (str1 == str2) { // Because str1 and str2 are not equal, the following code is not executed ... } if (0 == str1.CompareNoCase(str2)) { // Because the case-insensitive comparison, the CompareNoCase function returns0, So execute the following code ... }

5.CStringオブジェクト文字列の抽出

CString Left(int nCount)const

文字列の左側にnCount文字の部分文字列を抽出し、部分文字列のコピーを含むCStringオブジェクトを返します。

CString Right(int nCount)const

文字列の右側にnCount文字の部分文字列を抽出し、部分文字列のコピーを含むCStringオブジェクトを返します。

CString Mid(int iFirst、int nCount)const

文字列のiFirst位置から始まるnCount文字で構成される部分文字列を抽出し、部分文字列のコピーを含むCStringオブジェクトを返します。

CString Mid(int iFirst)const

インデックスiFirstの位置から文字列の終わりまでの文字列内の部分文字列を抽出し、部分文字列のコピーを含むCStringオブジェクトを返します。

例えば:

CString str1 = _T('shirunfa') CString str2 = str1.Left(3) // str2 is'shi' str2 = str1.Right(2) // str2 is'fa' str2 = str1.Mid(1,3) // str2 is'hir' str2 = str1.Mid(5) // str2 is'nfa'

6、CStringオブジェクト文字列検索操作

int Find(PCXSTR pszSub、int iStart = 0)const throw()
int Find(XCHAR ch、int iStart = 0)const throw()

CStringオブジェクト文字列のiStartインデックス位置から開始し、部分文字列pszSubまたは文字chが最初に表示される位置を見つけ、見つからない場合は-1を返します。

int FindOneOf(PCXSTR pszCharSet)const throw()

pszCharSet文字列内の任意の文字を検索し、最初に出現する文字を返します。見つからない場合は-1を返します。

int ReverseFind(XCHAR ch)const throw()

文字列の末尾から指定された文字chを見つけてその位置を返します。見つからない場合は、-1を返します。ここで、検索は後ろから前に実行されますが、位置のインデックスは最初から計算する必要があることに注意してください。

CString str = _T('shirunfa') int nIndex1 = str.Find(_T('ru')) // The value of nIndex1 is 2 int nIndex2 = str.FindOneOf(_T('hun')) // The value of nIndex2 is 1 int nIndex3 = str.ReverseFind(_T('a')) // The value of nIndex3 is 7

7つのCStringクラスオブジェクト文字列の置換と削除

int Replace(PCXSTR pszOld、PCXSTR pszNew)

CStringオブジェクトの部分文字列pszOldを文字列pszNewに置き換え、置き換えられた文字数を返します。

int Replace(XCHAR chOld、XCHAR chNew)

CStringオブジェクトの文字chOldを文字chNewに置き換え、置き換えられた文字の数を返します。

int Delete(int iIndex、int nCount = 1)

文字列のiIndexの位置からnCount文字を削除し、削除操作後の文字列の長さを返します。

int Remove(XCHAR chRemove)

文字列内のchRemoveで指定されたすべての文字を削除し、削除された文字数を返します。

例えば:

CString str = _T('shirunfa') int n1 = str.Replace(_T('s'), _T('j')) // str is 'jhirunfa', n1 is 1 int n2 = str.Delete(1,2) // str is 'srunfa', n2 is 6 int n3 = str.Remove(_T('a')) // str is 'shirunf', n3 is 1