次の方法で共有


CStringT::Replace

Replace には 2 つの種類があります。1 つは、部分文字列の 1 つまたは複数のコピーを別の部分文字列で置き換えます。 両方の部分文字列の終端は null です。 もう 1 つは、文字の 1 つまたは複数のコピーを別の文字で置き換えます。 これらはいずれも、CStringT に格納された文字データを操作します。

int Replace(
   PCXSTR pszOld,
   PCXSTR pszNew
);
int Replace(
   XCHAR chOld,
   XCHAR chNew
);

パラメーター

  • pszOld
    pszNewが置換される NULL で終わる文字列へのポインター。

  • pszNew
    その null で終わる文字列へのポインターは pszOldを置き換えます。

  • chOld
    chNew によって置き換えられる文字。

  • chNew
    chOld と置き換える文字。

戻り値

置き換えられた文字または部分文字列の数を返します。文字列が変更されていない場合はゼロを返します。

解説

pszNew と pszOld は長さが同じである必要がなく、古い部分文字列のいくつかのコピーは新しいものに変更できるため、Replace は文字列長を変更できます。 この関数は、大文字と小文字を区別します。

CStringT インスタンスには、CStringCStringACStringW などがあります。

CStringA の場合、Replace は ANSI 文字またはマルチバイト (MBCS) 文字を処理します。 CStringW の場合、Replace はワイド文字を処理します。

CStringでは、文字データ型はコンパイル時に次の表の定数が定義されているかどうかに基づいて選択されます。

定義した定数

文字データ型

_UNICODE

ワイド文字

_MBCS

マルチバイト文字

どちらも

1 バイト文字

Both

未定義

使用例

// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;

CAtlString strBang(_T("Everybody likes epee fencing"));
int n = strBang.Replace(_T("epee"), _T("foil"));
ASSERT(n == 1);   

必要条件

ヘッダー: cstringt.h

参照

関連項目

CStringT クラス