CStringT クラス

このクラスは、CStringT オブジェクトを表します。

template< typename BaseType, class StringTraits > 
class CStringT :  
public CSimpleStringT<   BaseType,   _CSTRING_IMPL_::_MFCDLLTraitsCheck<      BaseType,      StringTraits   >   ::c_bIsMFCDLLTraits>

パラメーター

  • BaseType
    文字列クラスの文字型。 次のいずれかになります。

    • char (ANSI 文字列の場合)。

    • wchar_t (Unicode 文字列の場合)。

    • TCHAR (ANSI 文字列と Unicode 文字列の両方の場合)。

  • StringTraits
    文字列クラスが C ランタイム (CRT: C Run-Time) ライブラリのサポートを必要とするかどうか、および文字列リソースが置かれている場所を決定する値。 次のいずれかになります。

    • StrTraitATL< wchar_t | char | TCHAR, ChTraitsCRT< wchar_t | char | TCHAR > >

      クラスは CRT のサポートを必要とし、m_hInstResource (アプリケーションのモジュール クラスのメンバー) によって指定されたモジュールでリソース文字列を検索します。

    • StrTraitATL< wchar_t | char | TCHAR, ChTraitsOS< wchar_t | char | TCHAR > >

      クラスは CRT のサポートを必要とせず、m_hInstResource (アプリケーションのモジュール クラスのメンバー) によって指定されたモジュールでリソース文字列を検索します。

    • StrTraitMFC< wchar_t | char | TCHAR, ChTraitsCRT< wchar_t | char | TCHAR > >

      クラスは CRT のサポートを必要とし、標準の MFC 検索アルゴリズムを使用してリソース文字列を検索します。

    • StrTraitMFC< wchar_t | char | TCHAR, ChTraitsOS< wchar_t | char | TCHAR > >

      クラスは CRT のサポートを必要とせず、標準の MFC 検索アルゴリズムを使用してリソース文字列を検索します。

メンバー

パブリック コンストラクター

名前

説明

CStringT::CStringT

さまざまな方法で CStringT オブジェクトを構築します。

CStringT::~CStringT

CStringT オブジェクトを破棄します。

パブリック メソッド

名前

説明

CStringT::AllocSysString

CStringT データから BSTR を割り当てます。

CStringT::AnsiToOem

ANSI 文字セットから OEM 文字セットに埋め込み先で変換します。

CStringT::AppendFormat

書式付きデータを既存の CStringT オブジェクトに付け加えます。

CStringT::Collate

ロケール固有の情報に基づき、2 つの文字列を比較します。大文字と小文字を区別します。

CStringT::CollateNoCase

ロケール固有の情報に基づき、2 つの文字列を比較します。大文字と小文字を区別しません。

CStringT::Compare

大文字と小文字を区別して 2 つの文字列を比較します。

CStringT::CompareNoCase

大文字と小文字を区別せずに 2 つの文字列を比較します。

CStringT::Delete

文字列から 1 文字または複数の文字を削除します。

CStringT::Find

文字列内の文字または部分文字列を検索します。

CStringT::FindOneOf

文字セットで最初に一致する文字を検索します。

CStringT::Format

sprintf と同じように文字列を書式化します。

CStringT::FormatMessage

メッセージ文字列を書式化します。

CStringT::FormatMessageV

可変個引数リストを使用してメッセージ文字列を書式化します。

CStringT::FormatV

可変個の引数のリストを使用して文字列を書式化します。

CStringT::GetEnvironmentVariable

文字列を指定された環境変数の値に設定します。

CStringT::Insert

文字列内の指定されたインデックス位置に 1 文字または部分文字列を挿入します。

CStringT::Left

文字列の左の部分を抽出します。

CStringT::LoadString

Windows のリソースから既存の CStringT オブジェクトを読み込みます。

CStringT::MakeLower

文字列内のすべての文字を小文字に変換します。

CStringT::MakeReverse

文字列を反転します。

CStringT::MakeUpper

文字列内のすべての文字を大文字に変換します。

CStringT::Mid

文字列の中央の部分を抽出します。

CStringT::OemToAnsi

OEM 文字セットから ANSI 文字セットに埋め込み先で変換します。

CStringT::Remove

指定された文字を文字列から削除します。

CStringT::Replace

指定された文字をほかの文字に置き換えます。

CStringT::ReverseFind

文字列内の文字を検索します。文字列の末尾から先頭方向へ検索します。

CStringT::Right

文字列の右の部分を抽出します。

CStringT::SetSysString

データを持つ既存の BSTR オブジェクトを CStringT オブジェクトから設定します。

CStringT::SpanExcluding

文字列の最初の文字から始まり pszCharSet にない文字が出現するまでの部分文字列を抽出します。

CStringT::SpanIncluding

指定した文字セットの文字だけで構成されている部分文字列を抽出します。

CStringT::Tokenize

対象の文字列内の指定されたトークンを抽出します。

CStringT::Trim

文字列の先頭と末尾にある空白文字を取り除きます。

CStringT::TrimLeft

文字列の先頭にある空白文字を取り除きます。

CStringT::TrimRight

文字列の末尾にある空白文字を取り除きます。

演算子

CStringT::operator =

CStringT オブジェクトに新しい値を代入します。

CStringT::operator +

2 つの文字列、または 1 文字と 1 つの文字列を連結します。

CStringT::operator +=

既存の文字列の末尾に新しい文字列を連結します。

CStringT::operator ==

2 つの文字列が論理的に等しいかどうかを判断します。

CStringT::operator !=

2 つの文字列が論理的に等しくないかどうかを判断します。

CStringT::operator <

演算子の左側の文字列が右側の文字列より小さいかどうかを判断します。

CStringT::operator >

演算子の左側の文字列が右側の文字列より大きいかどうかを判断します。

CStringT::operator <=

演算子の左側の文字列が右側の文字列以下かどうかを判断します。

CStringT::operator >=

演算子の左側の文字列が右側の文字列以上かどうかを判断します。

解説

CStringTCSimpleStringT クラスを継承します。 文字の操作、順序付け、検索などの拡張機能は CStringT によって実装されます。

注意

CStringT オブジェクトには例外をスローする機能があります。なんらかの理由により CStringT オブジェクトがメモリ不足になると、例外がスローされます。

CStringT オブジェクトは、可変長の文字列から構成されます。 CStringT には、Basic に似た構文を使用する関数と演算子が用意されています。 簡易化されたメモリ管理と合わせて、連結演算子や比較演算子により、通常の文字配列よりも CStringT オブジェクトの方が扱いやすくなっています。

注意

null 文字を埋め込んだ CStringT インスタンスを作成することは可能ですが、お勧めはしません。null 文字が埋め込まれた CStringT オブジェクトに対してメソッドまたは演算子を呼び出すと、予期しない結果が生じることがあります。

BaseType のパラメーターと StringTraits のパラメーターをさまざまに組み合わせることにより、CStringT オブジェクトは以下のような型になります。これらの型は、ATL ライブラリによって定義済みです。

ATL アプリケーションを使用する場合

CStringCStringA、および CStringW は、ユーザーの DLL からではなく、MFC DLL (MFC90.DLL) からエクスポートされます。 これは CStringT の多重定義を防止するためです。

注意

CString- Visual C++ .NET 2002 の MFC 拡張 DLL の派生クラス エクスポートするときに適用し、サポート技術情報の文書"に説明されているように、代替手段をリンカーのエラーが、これは Visual C++ .NET 2003 で、修正済み CString 派生クラス」をインポートするときにエラー リンク Q309801 回避策コードを削除する必要があります。サポート技術情報の文書は、MSDN ライブラリ CD-ROM または https://support.microsoft.com/default.aspx で参照できます。

MFC ベースのアプリケーション内では、次の文字列型を使用できます。

CStringT 型

宣言

CStringA

CRT サポート機能を持つ ANSI 文字型の文字列。

CStringW

CRT サポート機能を持つ Unicode 文字型の文字列。

CString

CRT サポート機能を持つ ANSI 文字型と Unicode 文字型の両方。

ATL_CSTRING_NO_CRT が定義されているプロジェクトでは、次の文字列型を使用できます。

CStringT 型

宣言

CAtlStringA

CRT サポート機能のない ANSI 文字型の文字列。

CAtlStringW

CRT サポート機能のない Unicode 文字型の文字列。

CAtlString

CRT サポート機能のない ANSI 文字型と Unicode 文字型の両方。

ATL_CSTRING_NO_CRT が定義されていないプロジェクトでは、次の文字列型を使用できます。

CStringT 型

宣言

CAtlStringA

CRT サポート機能を持つ ANSI 文字型の文字列。

CAtlStringW

CRT サポート機能を持つ Unicode 文字型の文字列。

CAtlString

CRT サポート機能を持つ ANSI 文字型と Unicode 文字型の両方。

また、CString オブジェクトは次の特性を持っています。

  • CStringT オブジェクトは、連結操作で拡張できます。

  • CStringT オブジェクトは値に基づいて操作が決定されます。CStringT オブジェクトは文字列へのポインターとしてではなく、実際の文字列として考えてください。

  • 関数の引数 PCXSTR の代わりに自由に CStringT を使用できます。

  • 文字列バッファーに対してカスタムのメモリ管理を実装できます。 詳細については、「メモリ管理と CStringT」を参照してください。

CStringT 定義済みの型

CStringT は、テンプレートの引数を使用してサポートされる文字型 (wchar_t または char) を定義するため、場合によってはメソッドのパラメーターの型が複雑になることがあります。 このように型が複雑化するのを避けるため、一連の定義済みの型が定義されており、CStringT クラス全体で使用されます。 型の一覧を次に示します。

名前

説明

XCHAR

CStringT オブジェクトと同じ文字型の 1 文字 (wchar_t または char のいずれか)。

YCHAR

CStringT オブジェクトと異なる文字型の 1 文字 (wchar_t または char のいずれか)。

PXSTR

CStringT オブジェクトと同じ文字型の文字列 (wchar_t または char のいずれか) へのポインター。

PYSTR

CStringT オブジェクトと異なる文字型の文字列 (wchar_t または char のいずれか) へのポインター。

PCXSTR

CStringT オブジェクトと同じ文字型の const 文字列 (wchar_t または char のいずれか) へのポインター。

PCYSTR

CStringT オブジェクトと異なる文字型の const 文字列 (wchar_t または char のいずれか) へのポインター。

注意

CString の非公開のメソッド (AssignCopy など) を使用したコードは、CStringT の公開メソッド (GetBufferReleaseBuffer など) を使用するコードで置換する必要があります。これらのメソッドは CSimpleStringTから継承されます。

継承階層

CSimpleStringT

CStringT

必要条件

Header

用途

cstringt.h

MFC 専用文字列オブジェクト

atlstr.h

非 MFC 文字列オブジェクト

参照

関連項目

階層図

CSimpleStringT クラス

その他の技術情報

ATL/MFC の共有クラス