Bagikan melalui


CStringT Kelas

Kelas ini mewakili CStringT objek.

Sintaks

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

Parameter

BaseType
Jenis karakter kelas string. Bisa jadi salah satu dari yang berikut:

  • char (untuk string karakter ANSI).

  • wchar_t (untuk string karakter Unicode).

  • TCHAR (untuk string karakter ANSI dan Unicode).

StringTraits
Menentukan apakah kelas string memerlukan dukungan Pustaka Run-Time (CRT) C dan tempat sumber daya string berada. Bisa jadi salah satu dari yang berikut:

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

    Kelas ini memerlukan dukungan CRT dan pencarian string sumber daya dalam modul yang ditentukan oleh m_hInstResource (anggota kelas modul aplikasi).

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

    Kelas tidak memerlukan dukungan CRT dan pencarian string sumber daya dalam modul yang ditentukan oleh m_hInstResource (anggota kelas modul aplikasi).

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

    Kelas ini memerlukan dukungan CRT dan pencarian string sumber daya menggunakan algoritma pencarian MFC standar.

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

    Kelas tidak memerlukan dukungan CRT dan pencarian string sumber daya menggunakan algoritma pencarian MFC standar.

Anggota

Konstruktor Publik

Nama Deskripsi
CStringT::CStringT Membangun objek dengan CStringT berbagai cara.
CStringT::~CStringT Menghancurkan objek CStringT .

Metode Publik

Nama Deskripsi
CStringT::AllocSysString Mengalokasikan BSTR dari CStringT data.
CStringT::AnsiToOem Membuat konversi di tempat dari karakter ANSI yang diatur ke set karakter OEM.
CStringT::AppendFormat Menambahkan data yang diformat ke objek yang sudah ada CStringT .
CStringT::Collate Membandingkan dua string (peka huruf besar/kecil, menggunakan informasi khusus lokal).
CStringT::CollateNoCase Membandingkan dua string (tidak peka huruf besar/kecil, menggunakan informasi khusus lokal).
CStringT::Compare Membandingkan dua string (peka huruf besar/kecil).
CStringT::CompareNoCase Membandingkan dua string (tidak peka huruf besar/kecil).
CStringT::Delete Menghapus karakter atau karakter dari string.
CStringT::Find Menemukan karakter atau substring di dalam string yang lebih besar.
CStringT::FindOneOf Menemukan karakter pertama yang cocok dari satu set.
CStringT::Format Memformat string seperti sprintf halnya.
CStringT::FormatMessage Memformat string pesan.
CStringT::FormatMessageV Memformat string pesan menggunakan daftar argumen variabel.
CStringT::FormatV Memformat string menggunakan daftar variabel argumen.
CStringT::GetEnvironmentVariable Mengatur string ke nilai variabel lingkungan yang ditentukan.
CStringT::Insert Menyisipkan satu karakter atau substring pada indeks yang diberikan dalam string.
CStringT::Left Mengekstrak bagian kiri string.
CStringT::LoadString Memuat objek yang ada CStringT dari sumber daya Windows.
CStringT::MakeLower Mengonversi semua karakter dalam string ini menjadi karakter huruf kecil.
CStringT::MakeReverse Membalikkan string.
CStringT::MakeUpper Mengonversi semua karakter dalam string ini menjadi karakter huruf besar.
CStringT::Mid Mengekstrak bagian tengah string.
CStringT::OemToAnsi Membuat konversi di tempat dari karakter OEM yang diatur ke set karakter ANSI.
CStringT::Remove Menghapus karakter yang ditunjukkan dari string.
CStringT::Replace Mengganti karakter yang ditunjukkan dengan karakter lain.
CStringT::ReverseFind Menemukan karakter di dalam string yang lebih besar; dimulai dari akhir.
CStringT::Right Mengekstrak bagian kanan string.
CStringT::SetSysString Mengatur objek yang sudah ada BSTR dengan data dari CStringT objek.
CStringT::SpanExcluding Mengekstrak karakter dari string, dimulai dengan karakter pertama, yang tidak ada dalam kumpulan karakter yang diidentifikasi oleh pszCharSet.
CStringT::SpanIncluding Mengekstrak substring yang hanya berisi karakter dalam satu set.
CStringT::Tokenize Mengekstrak token yang ditentukan dalam string target.
CStringT::Trim Memangkas semua karakter spasi kosong di depan dan di belakang dari string.
CStringT::TrimLeft Memangkas karakter spasi kosong di depan dari string.
CStringT::TrimRight Memangkas karakter spasi kosong berikutnya dari string.

Operator

Nama Deskripsi
CStringT::operator = Menetapkan nilai baru ke CStringT objek.
CStringT::operator + Menggabungkan dua string, atau karakter dan string.
CStringT::operator += Menggabungkan string baru ke akhir string yang ada.
CStringT::operator == Menentukan apakah dua string secara logis sama.
CStringT::operator != Menentukan apakah dua string tidak sama secara logis.
CStringT::operator < Menentukan apakah string di sisi kiri operator kurang dari string di sisi kanan.
CStringT::operator > Menentukan apakah string di sisi kiri operator lebih besar dari pada string di sisi kanan.
CStringT::operator <= Menentukan apakah string di sisi kiri operator kurang dari atau sama dengan string di sisi kanan.
CStringT::operator >= Menentukan apakah string di sisi kiri operator lebih besar dari atau sama dengan string di sisi kanan.

Keterangan

CStringT mewarisi dari CSimpleStringT Kelas. Fitur lanjutan, seperti manipulasi karakter, pemesanan, dan pencarian, diimplementasikan oleh CStringT.

Catatan

CStringT objek mampu melemparkan pengecualian. Ini terjadi ketika CStringT objek kehabisan memori karena alasan apa pun.

Objek CStringT terdiri dari urutan karakter panjang variabel. CStringT menyediakan fungsi dan operator menggunakan sintaks yang mirip dengan Dasar. Operator perbandingan dan perbandingan, bersama dengan manajemen memori yang disederhanakan, membuat CStringT objek lebih mudah digunakan daripada array karakter biasa.

Catatan

Meskipun dimungkinkan untuk membuat CStringT instans yang berisi karakter null yang disematkan, kami sarankan untuk melawannya. Metode dan operator panggilan pada CStringT objek yang berisi karakter null yang disematkan dapat menghasilkan hasil yang tidak diinginkan.

Dengan menggunakan kombinasi BaseType parameter dan StringTraits yang berbeda, CStringT objek dapat datang dalam jenis berikut, yang telah ditentukan sebelumnya oleh pustaka ATL.

Jika menggunakan dalam aplikasi ATL:

CString, CStringA, dan CStringW diekspor dari DLL MFC (MFC90.DLL), tidak pernah dari DLL pengguna. Ini dilakukan untuk mencegah CStringT didefinisikan beberapa kali.

Catatan

Jika kode Anda berisi solusi untuk kesalahan linker yang dijelaskan dalam Mengekspor Kelas String Menggunakan CStringT, Anda harus menghapus kode tersebut. Ini tidak lagi diperlukan.

Jenis string berikut tersedia dalam aplikasi berbasis MFC:

Jenis CStringT Deklarasi
CStringA String jenis karakter ANSI dengan dukungan CRT.
CStringW String jenis karakter Unicode dengan dukungan CRT.
CString Jenis karakter ANSI dan Unicode dengan dukungan CRT.

Jenis string berikut tersedia dalam proyek di mana ATL_CSTRING_NO_CRT ditentukan:

Jenis CStringT Deklarasi
CAtlStringA String jenis karakter ANSI tanpa dukungan CRT.
CAtlStringW String jenis karakter Unicode tanpa dukungan CRT.
CAtlString Jenis karakter ANSI dan Unicode tanpa dukungan CRT.

Jenis string berikut tersedia dalam proyek yang ATL_CSTRING_NO_CRT tidak ditentukan:

Jenis CStringT Deklarasi
CAtlStringA String jenis karakter ANSI dengan dukungan CRT.
CAtlStringW String jenis karakter Unicode dengan dukungan CRT.
CAtlString Jenis karakter ANSI dan Unicode dengan dukungan CRT.

CString objek juga memiliki karakteristik berikut:

  • CStringT objek dapat tumbuh karena operasi perangkaian.

  • CStringT objek mengikuti "semantik nilai". CStringT Anggap objek sebagai string aktual, bukan sebagai penunjuk ke string.

  • Anda dapat dengan bebas mengganti CStringT objek untuk PCXSTR argumen fungsi.

  • Manajemen memori kustom untuk buffer string. Untuk informasi selengkapnya, lihat Manajemen Memori dan CStringT.

Jenis CStringt yang Telah Ditentukan Sebelumnya

Karena CStringT menggunakan argumen templat untuk menentukan jenis karakter (baik wchar_t atau char) yang didukung, jenis parameter metode dapat rumit kadang-kadang. Untuk menyederhanakan masalah ini, sekumpulan jenis yang telah ditentukan sebelumnya ditentukan dan digunakan di CStringT seluruh kelas. Tabel berikut mencantumkan berbagai jenis:

Nama Deskripsi
XCHAR Satu karakter (baik wchar_t atau char) dengan jenis CStringT karakter yang sama dengan objek.
YCHAR Satu karakter (baik wchar_t atau char) dengan jenis karakter yang berlawanan CStringT sebagai objek.
PXSTR Penunjuk ke string karakter (baik wchar_t atau char) dengan jenis CStringT karakter yang sama dengan objek.
PYSTR Penunjuk ke string karakter (baik wchar_t atau char) dengan jenis karakter yang berlawanan CStringT sebagai objek.
PCXSTR Penunjuk ke const string karakter (baik wchar_t atau char) dengan jenis CStringT karakter yang sama dengan objek.
PCYSTR Penunjuk ke const string karakter (baik wchar_t atau char) dengan jenis karakter yang berlawanan CStringT sebagai objek.

Catatan

Kode yang sebelumnya menggunakan metode yang tidak terdokumentasi ( CString seperti AssignCopy) harus diganti dengan kode yang menggunakan metode CStringT terdokumentasi berikut (seperti GetBuffer atau ReleaseBuffer). Metode ini diwariskan dari CSimpleStringT.

Hierarki Warisan

CSimpleStringT

CStringT

Persyaratan

Header Gunakan untuk
cstringt.h Objek string khusus MFC
atlstr.h Objek string non-MFC

CStringT::AllocSysString

Mengalokasikan string jenis BSTR yang kompatibel dengan Automation dan menyalin konten CStringT objek ke dalamnya, termasuk karakter null yang mengakhiri.

BSTR AllocSysString() const;

Tampilkan Nilai

String yang baru dialokasikan.

Keterangan

Dalam program MFC, CMemoryException Kelas dilemparkan jika memori tidak mencukup ada. Dalam program ATL, dilemparkan CAtlException . Fungsi ini biasanya digunakan untuk mengembalikan string untuk Automation.

Umumnya, jika string ini diteruskan ke fungsi COM sebagai [in] parameter, maka ini mengharuskan pemanggil untuk membebaskan string. Ini dapat dilakukan dengan menggunakan SysFreeString, seperti yang dijelaskan di Windows SDK. Untuk informasi selengkapnya, lihat Mengalokasikan dan Merilis Memori untuk BSTR.

Untuk informasi selengkapnya tentang fungsi alokasi OLE di Windows, lihat SysAllocString di Windows SDK.

Contoh

Contoh berikut menunjukkan penggunaan CStringT::AllocSysString.

// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;
CAtlString str(_T("This is a test string!"));
BSTR bstr = str.AllocSysString();

// bstr now contains "This is a test string!", and can be
// passed to any OLE function requiring a BSTR.
// Normally, if you pass the BSTR, you will
// need to free the string after returning from the function call.   

CStringT::AnsiToOem

Mengonversi semua karakter dalam objek ini CStringT dari karakter ANSI yang diatur ke set karakter OEM.

void AnsiToOem();

Keterangan

Fungsi tidak tersedia jika _UNICODE ditentukan.

Contoh

// OEM character 252 on most IBM-compatible computers in
// many countries/regions is superscript n, as in 2^n.
// Converting it to the ANSI English charset results in a
// normal character 'n', which is the closest possible
// representation.

CStringT<char, StrTraitATL<char, ChTraitsCRT<char>>> str((WCHAR)252);
str.OemToAnsi();
ASSERT(str[0] == 'n');

// Be aware that in OEM to ANSI conversion the 'n'
// from the previous result cannot be converted back to
// a supsercript n because the system does not know what
// the character's value truly was.
str.AnsiToOem();
ASSERT(str[0] != 252);
ASSERT(str[0] == 'n');   

CStringT::AppendFormat

Menambahkan data yang diformat ke objek yang sudah ada CStringT .

void __cdecl AppendFormat(PCXSTR pszFormat, [, argument] ...);
void __cdecl AppendFormat(UINT nFormatID, [, argument] ...);

Parameter

pszFormat
String kontrol format.

nFormatID
Pengidentifikasi sumber daya string yang berisi string kontrol format.

argument
Argumen opsional.

Keterangan

Fungsi ini memformat dan menambahkan serangkaian karakter dan nilai dalam CStringT. Setiap argumen opsional (jika ada) dikonversi dan ditambahkan sesuai dengan spesifikasi format yang sesuai di atau dari sumber daya string yang diidentifikasi pszFormat oleh nFormatID.

Contoh

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

CAtlString str = _T("Some data:\t");

str.AppendFormat(_T("X value = %.2f\n"), 12345.12345);
_tprintf_s(_T("%s"), (LPCTSTR) str);

CStringT::Collate

Membandingkan dua string menggunakan fungsi _tcscollteks generik .

int Collate(PCXSTR psz) const throw();

Parameter

psz
String lain yang digunakan untuk perbandingan.

Tampilkan Nilai

Nol jika string identik, < 0 jika objek ini CStringT kurang dari psz, atau > 0 jika objek ini CStringT lebih besar dari psz.

Keterangan

Fungsi _tcscollteks generik , yang didefinisikan dalam TCHAR.H, peta ke strcoll, , wcscollatau _mbscoll, tergantung pada set karakter yang ditentukan pada waktu kompilasi. Setiap fungsi melakukan perbandingan string yang peka huruf besar/kecil sesuai dengan halaman kode yang saat ini digunakan. Untuk informasi selengkapnya, lihat strcoll, , _mbscollwcscoll, _strcoll_l, _wcscoll_l, _mbscoll_l.

CStringT::CollateNoCase

Membandingkan dua string menggunakan fungsi _tcscollteks generik .

int CollateNoCase(PCXSTR psz) const throw();

Parameter

psz
String lain yang digunakan untuk perbandingan.

Tampilkan Nilai

Nol jika string identik (mengabaikan kasus), < 0 jika objek ini CStringT kurang dari psz (mengabaikan kasus), atau > 0 jika objek ini CStringT lebih besar dari psz (mengabaikan kasus).

Keterangan

Fungsi _tcscollteks generik , yang didefinisikan dalam TCHAR.H, peta ke stricoll, , wcsicollatau _mbsicoll, tergantung pada set karakter yang ditentukan pada waktu kompilasi. Setiap fungsi melakukan perbandingan string yang tidak peka huruf besar/kecil, sesuai dengan halaman kode yang saat ini digunakan. Untuk informasi selengkapnya, lihat , , _mbscollwcscoll, _strcoll_l, _wcscoll_l, _mbscoll_l.strcoll

Contoh

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

CAtlString str1 = _T("Co-Op");
CAtlString str2 = _T("con");

int n;

// Collation uses language rules, such as ignoring dashes.
// NoCase version ignores case.
n = str1.CollateNoCase(str2);
ASSERT(n < 0);

// Comparison is a strict ASCII comparison with no language rules
// but still ignores case in NoCase version.
n = str1.CompareNoCase(str2);
ASSERT(n < 0);   

CStringT::Compare

Membandingkan dua string (peka huruf besar/kecil).

int Compare(PCXSTR psz) const;

Parameter

psz
String lain yang digunakan untuk perbandingan.

Tampilkan Nilai

Nol jika string identik, < 0 jika objek ini CStringT kurang dari psz, atau > 0 jika objek ini CStringT lebih besar dari psz.

Keterangan

Fungsi _tcscmpteks generik , yang didefinisikan dalam TCHAR.H, peta ke strcmp, , wcscmpatau _mbscmp, tergantung pada set karakter yang ditentukan pada waktu kompilasi. Setiap fungsi melakukan perbandingan string yang peka huruf besar/kecil dan tidak terpengaruh oleh lokal. Untuk informasi selengkapnya, lihat , , _mbscmpwcscmp.strcmp

Jika string berisi null yang disematkan, untuk tujuan perbandingan, string dianggap terpotong pada karakter null pertama yang disematkan.

Contoh

Contoh berikut menunjukkan penggunaan CStringT::Compare.

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

CAtlString s1(_T("abc"));
CAtlString s2(_T("abd"));
ASSERT(s1.Compare(s2) < 0);    // Compare with another CAtlString.
ASSERT(s1.Compare(_T("abe")) < 0); // Compare with LPTSTR string.   

CStringT::CompareNoCase

Membandingkan dua string (tidak peka huruf besar/kecil).

int CompareNoCase(PCXSTR psz) const throw();

Parameter

psz
String lain yang digunakan untuk perbandingan.

Tampilkan Nilai

Nol jika string identik (mengabaikan kasus), <0 jika objek ini CStringT kurang dari psz (mengabaikan kasus), atau >0 jika objek ini CStringT lebih besar dari psz (mengabaikan kasus).

Keterangan

Fungsi _tcsicmpteks generik , yang didefinisikan dalam TCHAR.H, peta ke _stricmp, _wcsicmp atau _mbsicmp, tergantung pada kumpulan karakter yang ditentukan pada waktu kompilasi. Setiap fungsi melakukan perbandingan string yang tidak peka huruf besar/kecil. Perbandingan tergantung pada LC_CTYPE aspek lokal tetapi tidak LC_COLLATE. Untuk informasi selengkapnya, lihat , , _mbsicmp_wcsicmp, _stricmp_l, _wcsicmp_l, _mbsicmp_l._stricmp

Contoh

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

CAtlString s1(_T("abc"));
CAtlString s2(_T("ABD"));
ASSERT(s1.CompareNoCase(s2) < 0); // Compare with a CAtlString.
ASSERT(s1.CompareNoCase(_T("ABE")) < 0); // Compare with LPTSTR string.   

CStringT::CStringT

Membuat CStringT objek.

CStringT() throw() :
    CThisSimpleString(StringTraits::GetDefaultManager());

explicit CStringT(IAtlStringMgr* pStringMgr) throw() :
    CThisSimpleString( pStringMgr);

CStringT(const VARIANT& varSrc);

CStringT(const VARIANT& varSrc, IAtlStringMgr* pStringMgr);

CStringT(const CStringT& strSrc) :
    CThisSimpleString( strSrc);

operator CSimpleStringT<
                    BaseType,
                    !_CSTRING_IMPL_::_MFCDLLTraitsCheck<BaseType, StringTraits>
                    :: c_bIsMFCDLLTraits> &()

template <bool bMFCDLL>
CStringT(const CSimpleStringT<BaseType, bMFCDLL>& strSrc) :
    CThisSimpleString( strSrc);

template <class SystemString>
CStringT(SystemString^ pString) :
    CThisSimpleString( StringTraits::GetDefaultManager());

CStringT(const XCHAR* pszSrc) :
    CThisSimpleString( StringTraits::GetDefaultManager());

CSTRING_EXPLICIT CStringT(const YCHAR* pszSrc) :
    CThisSimpleString( StringTraits::GetDefaultManager());

CStringT(LPCSTR pszSrc, IAtlStringMgr* pStringMgr) :
    CThisSimpleString( pStringMgr);

CStringT(LPCWSTR pszSrc, IAtlStringMgr* pStringMgr) :
    CThisSimpleString( pStringMgr);

CSTRING_EXPLICIT CStringT(const unsigned char* pszSrc) :
    CThisSimpleString( StringTraits::GetDefaultManager());

/*CSTRING_EXPLICIT*/ CStringT(char* pszSrc) :
    CThisSimpleString( StringTraits::GetDefaultManager());

CSTRING_EXPLICIT CStringT(unsigned char* pszSrc) :
    CThisSimpleString( StringTraits::GetDefaultManager());

CSTRING_EXPLICIT CStringT(wchar_t* pszSrc) :
    CThisSimpleString( StringTraits::GetDefaultManager());

CStringT(const unsigned char* pszSrc, IAtlStringMgr* pStringMgr) :
    CThisSimpleString( pStringMgr);

CSTRING_EXPLICIT CStringT(char ch, int nLength = 1) :
    CThisSimpleString( StringTraits::GetDefaultManager());

CSTRING_EXPLICIT CStringT(wchar_t ch, int nLength = 1) :
    CThisSimpleString( StringTraits::GetDefaultManager());

CStringT(const XCHAR* pch, int nLength) :
    CThisSimpleString( pch, nLength, StringTraits::GetDefaultManager());

CStringT(const YCHAR* pch, int nLength) :
    CThisSimpleString( StringTraits::GetDefaultManager());

CStringT(const XCHAR* pch, int nLength, AtlStringMgr* pStringMgr) :
    CThisSimpleString( pch, nLength, pStringMgr);

CStringT(const YCHAR* pch, int nLength, IAtlStringMgr* pStringMgr) :
    CThisSimpleString( pStringMgr);

Parameter

pch
Penunjuk ke array karakter panjang nLength, bukan dihentikan null.

nLength
Jumlah karakter dalam pch.

ch
Satu karakter.

pszSrc
Untai (karakter) null-terminated yang akan disalin ke dalam objek ini CStringT .

pStringMgr
Penunjuk ke manajer memori untuk CStringT objek. Untuk informasi selengkapnya tentang IAtlStringMgr dan manajemen memori untuk CStringT, lihat Manajemen Memori dengan CStringT.

strSrc
Objek yang CStringT ada untuk disalin ke dalam objek ini CStringT . Untuk informasi selengkapnya tentang CThisString dan CThisSimpleString, lihat bagian Keterangan.

varSrc
Objek varian yang akan disalin ke dalam objek ini CStringT .

BaseType
Jenis karakter kelas string. Bisa jadi salah satu dari yang berikut:

char (untuk string karakter ANSI).

wchar_t (untuk string karakter Unicode).

TCHAR (untuk string karakter ANSI dan Unicode).

bMFCDLL
Boolean yang menentukan apakah proyek adalah DLL MFC (TRUE) atau tidak (FALSE).

SystemString
Harus System::String, dan proyek harus dikompilasi dengan /clr.

pString
Handel untuk CStringT objek.

Keterangan

Karena konstruktor menyalin data input ke penyimpanan baru yang dialokasikan, pengecualian memori dapat dihasilkan. Beberapa konstruktor ini bertindak sebagai fungsi konversi. Ini memungkinkan Anda untuk mengganti, misalnya, di LPTSTR mana CStringT objek diharapkan.

  • CStringT( LPCSTR lpsz ): Membuat Unicode CStringT dari string ANSI. Anda juga dapat menggunakan konstruktor ini untuk memuat sumber daya string seperti yang ditunjukkan pada contoh di bawah ini.

  • CStringT(LPCWSTR lpsz ): Membuat CStringT dari string Unicode.

  • CStringT( const unsigned char* psz ): Memungkinkan Anda membuat CStringT dari pointer ke unsigned char.

Catatan

Tentukan _CSTRING_DISABLE_NARROW_WIDE_CONVERSION makro untuk menonaktifkan konversi string implisit antara string ANSI dan Unicode. Makro mengecualikan dari konstruktor kompilasi yang mendukung konversi.

Parameter strSrc dapat berupa CStringT objek atau CThisSimpleString . Untuk CStringT, gunakan salah satu instansiasi defaultnya (CString, , CStringAatau CStringW); untuk CThisSimpleString, gunakan this penunjuk. CThisSimpleString mendeklarasikan instans CSimpleStringT Kelas, yang merupakan kelas string yang lebih kecil dengan fungsionalitas bawaan CStringT yang lebih sedikit daripada kelas .

Operator CSimpleStringT<>&() kelebihan beban membuat CStringT objek dari CSimpleStringT deklarasi.

Catatan

Meskipun dimungkinkan untuk membuat CStringT instans yang berisi karakter null yang disematkan, kami sarankan untuk melawannya. Metode dan operator panggilan pada CStringT objek yang berisi karakter null yang disematkan dapat menghasilkan hasil yang tidak diinginkan.

Contoh

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

CAtlString s1;                    // Empty string
CAtlString s2(_T("cat"));           // From a C string literal
CAtlString s3 = s2;               // Copy constructor
CAtlString s4(s2 + _T(" ") + s3);   // From a string expression

CAtlString s5(_T('x'));             // s5 = "x"
CAtlString s6(_T('x'), 6);          // s6 = "xxxxxx"

CAtlString s7((LPCSTR)ID_FILE_NEW); // s7 = "Create a new document"

VARIANT var;
V_VT(&var) = VT_BSTR;
V_BSTR(&var) = ::SysAllocString(L"Football is a fun sport.");
CAtlString s8(var); // s8 = "Football is a fun sport."

// The following statement does not call the assignment operator.
// The compiler considers the following statement equivalent to
// CAtlString city("Paris")
CAtlString city = _T("Paris");   

CStringT::~CStringT

CStringT Menghancurkan objek.

~CStringT() throw();

Keterangan

CStringT Menghancurkan objek.

CStringT::Delete

Menghapus karakter atau karakter dari string yang dimulai dengan karakter pada indeks yang diberikan.

int Delete(int iIndex, int nCount = 1);

Parameter

iIndex
Indeks berbasis nol dari karakter pertama dalam objek yang CStringT akan dihapus.

nCount
Jumlah karakter yang akan dihapus.

Tampilkan Nilai

Panjang string yang diubah.

Keterangan

Jika nCount lebih panjang dari string, string lainnya akan dihapus.

Contoh

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

CAtlString str(_T("Soccer is best, but hockey is quicker!"));
_tprintf_s(_T("Before: %s\n"), (LPCTSTR)str);

int n = str.Delete(6, 3);
_tprintf_s(_T("After: %s\n"), (LPCTSTR)str);
ASSERT(n == str.GetLength());
Before: Soccer is best,
    but hockey is quicker!
After: Soccer best,
    but hockey is quicker!

CStringT::Find

Mencari string ini untuk kecocokan pertama karakter atau substring.

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

Parameter

pszSub
Substring yang akan dicari.

iStart
Indeks karakter dalam string untuk memulai pencarian dengan, atau 0 untuk memulai dari awal.

ch
Satu karakter untuk dicari.

Tampilkan Nilai

Indeks berbasis nol dari karakter pertama dalam objek ini CStringT yang cocok dengan substring atau karakter yang diminta; -1 jika substring atau karakter tidak ditemukan.

Keterangan

Fungsi ini kelebihan beban untuk menerima kedua karakter tunggal (mirip dengan fungsi strchrrun-time ) dan string (mirip strstrdengan ).

Contoh

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

CAtlString s(_T("abcdef"));
ASSERT(s.Find(_T('c')) == 2);
ASSERT(s.Find(_T("de")) == 3);

CAtlString str(_T("The waves are still"));
int n = str.Find(_T('e'), 5);
ASSERT(n == 7);   

CStringT::FindOneOf

Mencari string ini untuk karakter pertama yang cocok dengan karakter apa pun yang terkandung dalam pszCharSet.

int FindOneOf(PCXSTR pszCharSet) const throw();

Parameter

pszCharSet
String yang berisi karakter untuk pencocokan.

Tampilkan Nilai

Indeks berbasis nol dari karakter pertama dalam string ini yang juga ada di pszCharSet; -1 jika tidak ada kecocokan.

Keterangan

Menemukan kemunculan pertama dari salah satu karakter di pszCharSet.

Contoh

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

CAtlString s(_T("abcdef"));
ASSERT(s.FindOneOf(_T("xd")) == 3); // 'd' is first match   

CStringT::Format

Menulis data yang diformat dengan cara yang CStringT sama seperti sprintf_s memformat data ke dalam array karakter gaya C.

void __cdecl Format(UINT nFormatID, [, argument]...);
void __cdecl Format(PCXSTR pszFormat,  [, argument] ...);

Parameter

nFormatID
Pengidentifikasi sumber daya string yang berisi string kontrol format.

pszFormat
String kontrol format.

argument
Argumen opsional.

Keterangan

Fungsi ini memformat dan menyimpan serangkaian karakter dan nilai dalam CStringT. Setiap argumen opsional (jika ada) dikonversi dan output sesuai dengan spesifikasi format yang sesuai di atau dari sumber daya string yang diidentifikasi pszFormat oleh nFormatID.

Panggilan akan gagal jika objek string itu sendiri ditawarkan sebagai parameter ke Format. Misalnya, kode berikut akan menyebabkan hasil yang tidak dapat diprediksi:

CAtlString str = _T("Some Data");
str.Format(_T("%s%d"), str, 123);   
// Attention: str is also used in the parameter list.   

Untuk informasi selengkapnya, lihat Sintaks Spesifikasi Format: printf dan wprintf Fungsi.

Contoh

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

str.Format(_T("Floating point: %.2f\n"), 12345.12345);
_tprintf_s(_T("%s"), (LPCTSTR) str);

str.Format(_T("Left-justified integer: %.6d\n"), 35);
_tprintf_s(_T("%s"), (LPCTSTR) str);

CStringT::FormatMessage

Memformat string pesan.

void __cdecl FormatMessage(UINT nFormatID, [, argument]...);
void __cdecl FormatMessage(PCXSTR pszFormat, [, argument]...);

Parameter

nFormatID
Pengidentifikasi sumber daya string yang berisi teks pesan yang tidak diformat.

pszFormat
Menunjuk ke string kontrol format. Ini akan dipindai untuk sisipan dan diformat sesuai. String format mirip dengan string format fungsi printfrun-time -style, kecuali memungkinkan parameter dimasukkan dalam urutan arbitrer.

argument
Argumen opsional.

Keterangan

Fungsi ini memerlukan definisi pesan sebagai input. Definisi pesan ditentukan oleh pszFormat atau dari sumber daya string yang diidentifikasi oleh nFormatID. Fungsi menyalin teks pesan yang diformat ke CStringT objek, memproses urutan sisipkan yang disematkan jika diminta.

Catatan

FormatMessage mencoba mengalokasikan memori sistem untuk string yang baru diformat. Jika upaya ini gagal, pengecualian memori secara otomatis dilemparkan.

Setiap sisipan harus memiliki parameter yang sesuai dengan parameter pszFormat atau nFormatID . Dalam teks pesan, beberapa urutan escape didukung untuk memformat pesan secara dinamis. Untuk informasi selengkapnya, lihat fungsi Windows FormatMessage di Windows SDK.

Contoh

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

CAtlString str;
int nAsked = 5;
int nAgree = 4;

str.FormatMessage(_T("%1!d! of %2!d! writers agree: Soccer is %3%!"), 
   nAgree, nAsked, _T("Best"));
ASSERT(str == _T("4 of 5 writers agree: Soccer is Best!"));   

CStringT::FormatMessageV

Memformat string pesan menggunakan daftar argumen variabel.

void FormatMessageV(PCXSTR pszFormat, va_list* pArgList);

Parameter

pszFormat
Menunjuk ke string kontrol format. Ini akan dipindai untuk sisipan dan diformat sesuai. String format mirip dengan string format fungsi printfrun-time -style, kecuali memungkinkan parameter dimasukkan dalam urutan arbitrer.

pArgList
Penunjuk ke daftar argumen.

Keterangan

Fungsi ini memerlukan definisi pesan sebagai input, ditentukan oleh pszFormat. Fungsi menyalin teks pesan yang diformat dan daftar variabel argumen ke CStringT objek, memproses urutan sisipkan yang disematkan jika diminta.

Catatan

FormatMessageVCStringT::FormatMessagememanggil , yang mencoba mengalokasikan memori sistem untuk string yang baru diformat. Jika upaya ini gagal, pengecualian memori secara otomatis dilemparkan.

Untuk informasi selengkapnya, lihat fungsi Windows FormatMessage di Windows SDK.

CStringT::FormatV

Memformat string pesan menggunakan daftar argumen variabel.

void FormatV(PCXSTR pszFormat, va_list args);

Parameter

pszFormat
Menunjuk ke string kontrol format. Ini akan dipindai untuk sisipan dan diformat sesuai. String format mirip dengan string format fungsi printfrun-time -style, kecuali memungkinkan parameter dimasukkan dalam urutan arbitrer.

args
Penunjuk ke daftar argumen.

Keterangan

Menulis string yang diformat dan daftar variabel argumen ke string dengan CStringT cara yang sama seperti memformat vsprintf_s data ke dalam array karakter gaya C.

Contoh

void WriteString(LPCTSTR pstrFormat, ...)
{
    CString str;

    // format and write the data you were given
    va_list args;
    va_start(args, pstrFormat);

    str.FormatV(pstrFormat, args);
    va_end(args);

    _tprintf_s(str);
    return;
}

 

// Call the above WriteString function.
WriteString(_T("%d error(s) found in %d line(s)"), 10, 1351);

CStringT::GetEnvironmentVariable

Mengatur string ke nilai variabel lingkungan yang ditentukan.

BOOL GetEnvironmentVariable(PCXSTR pszVar);

Parameter

pszVar
Penunjuk ke string null-terminated yang menentukan variabel lingkungan.

Tampilkan Nilai

Bukan nol jika berhasil; jika tidak, 0.

Keterangan

Mengambil nilai variabel yang ditentukan dari blok lingkungan proses panggilan. Nilai dalam bentuk string karakter yang dihentikan null.

Contoh

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

EnvStr.GetEnvironmentVariable(_T("TEMP"));
_tprintf_s(_T("Current value of TEMP variable: %s\n"), EnvStr);

CStringT::Insert

Menyisipkan satu karakter atau substring pada indeks yang diberikan dalam string.

int Insert(int iIndex, PCXSTR psz);
int Insert(int iIndex, XCHAR ch);

Parameter

iIndex
Indeks karakter sebelum penyisipan akan berlangsung.

psz
Penunjuk ke substring yang akan disisipkan.

ch
Karakter yang akan disisipkan.

Tampilkan Nilai

Panjang string yang diubah.

Keterangan

Parameter iIndex mengidentifikasi karakter pertama yang akan dipindahkan untuk memberi ruang bagi karakter atau substring. Jika nIndex nol, penyisipan akan terjadi sebelum seluruh string. Jika nIndex lebih tinggi dari panjang string, fungsi akan menggabungkan string saat ini dan materi baru yang disediakan oleh atau ch psz.

Contoh

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

CAtlString str(_T("SoccerBest"));
int n = str.Insert(6, _T("is "));
ASSERT(n == str.GetLength());
_tprintf_s(_T("1: %s\n"), (LPCTSTR) str);

n = str.Insert(6, _T(' '));
ASSERT(n == str.GetLength());
_tprintf_s(_T("2: %s\n"), (LPCTSTR) str);

n = str.Insert(55, _T('!'));
ASSERT(n == str.GetLength());
_tprintf_s(_T("3: %s\n"), (LPCTSTR) str);

CStringT::Left

Mengekstrak karakter paling nCount kiri dari objek ini CStringT dan mengembalikan salinan substring yang diekstrak.

CStringT Left(int nCount) const;

Parameter

nCount
Jumlah karakter yang akan diekstrak dari objek ini CStringT .

Tampilkan Nilai

Objek CStringT yang berisi salinan rentang karakter yang ditentukan. Objek yang dikembalikan CStringT mungkin kosong.

Keterangan

Jika nCount melebihi panjang string, maka seluruh string diekstrak. Left mirip dengan fungsi Dasar Left .

Untuk set karakter multi-byte (MBCS), nCount memperlakukan setiap urutan 8-bit sebagai karakter, sehingga nCount mengembalikan jumlah karakter multi-byte yang dikalikan dua.

Contoh

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

CAtlString s(_T("abcdef"));
ASSERT(s.Left(2) == _T("ab"));   

CStringT::LoadString

Membaca sumber daya string Windows, yang diidentifikasi oleh nID, ke dalam objek yang ada CStringT .

BOOL LoadString(HINSTANCE hInstance, UINT nID, WORD wLanguageID);
BOOL LoadString(HINSTANCE hInstance, UINT nID);
BOOL LoadString(UINT nID);

Parameter

hInstance
Handel ke instans modul.

nID
ID sumber daya string Windows.

wLanguageID
Bahasa sumber daya string.

Tampilkan Nilai

Bukan nol jika beban sumber daya berhasil; jika tidak, 0.

Keterangan

Memuat sumber daya string (nID) dari modul yang ditentukan (hInstance) menggunakan bahasa yang ditentukan (wLanguage).

Contoh

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

CAtlString s;
s.LoadString(IDS_APP_TITLE);   

CStringT::MakeLower

CStringT Mengonversi objek menjadi string huruf kecil.

CStringT& MakeLower();

Tampilkan Nilai

String huruf kecil yang dihasilkan.

Contoh

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

CAtlString s(_T("ABC"));

ASSERT(s.MakeLower() == _T("abc"));   

CStringT::MakeReverse

Membalikkan urutan karakter dalam CStringT objek.

CStringT& MakeReverse();

Tampilkan Nilai

String terbalik yang dihasilkan.

Contoh

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

CAtlString s(_T("abc"));

ASSERT(s.MakeReverse() == _T("cba"));   

CStringT::MakeUpper

CStringT Mengonversi objek menjadi string huruf besar.

CStringT& MakeUpper();

Tampilkan Nilai

String huruf besar yang dihasilkan.

Keterangan

Contoh

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

CAtlString s(_T("abc"));

ASSERT(s.MakeUpper() == _T("ABC"));   

CStringT::Mid

Mengekstrak substring karakter panjang nCount dari objek ini CStringT , dimulai dari posisi iFirst (berbasis nol).

CStringT Mid(int iFirst, int nCount) const;
CStringT Mid(int iFirst) const;

Parameter

iFirst
Indeks berbasis nol dari karakter pertama dalam objek ini CStringT yang akan disertakan dalam substring yang diekstrak.

nCount
Jumlah karakter yang akan diekstrak dari objek ini CStringT . Jika parameter ini tidak disediakan, maka string lainnya akan diekstrak.

Tampilkan Nilai

Objek CStringT yang berisi salinan rentang karakter yang ditentukan. Objek yang dikembalikan CStringT mungkin kosong.

Keterangan

Fungsi mengembalikan salinan substring yang diekstrak. Mid mirip dengan fungsi Basic Mid (kecuali bahwa indeks di Dasar berbasis satu).

Untuk set karakter multibyte (MBCS), nCount mengacu pada setiap karakter 8-bit; yaitu, byte prospek dan jejak dalam satu karakter multibyte dihitung sebagai dua karakter.

Contoh

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

CAtlString s(_T("abcdef"));
ASSERT(s.Mid(2, 3) == _T("cde"));   

CStringT::OemToAnsi

Mengonversi semua karakter dalam objek ini CStringT dari karakter OEM yang diatur ke set karakter ANSI.

void OemToAnsi();

Keterangan

Fungsi ini tidak tersedia jika _UNICODE ditentukan.

Contoh

Lihat contoh untuk CStringT::AnsiToOem.

CStringT::operator =

Menetapkan nilai baru ke string.

CStringT& operator=(const CStringT& strSrc);

template<bool bMFCDLL>
CStringT& operator=(const CSimpleStringT<BaseType, bMFCDLL>& str);
CStringT& operator=(PCXSTR pszSrc);
CStringT& operator=(PCYSTR pszSrc);
CStringT& operator=(const unsigned char* pszSrc);
CStringT& operator=(XCHAR ch);
CStringT& operator=(YCHAR ch);
CStringT& operator=(const VARIANT& var);

Parameter

strSrc
CStringT untuk menetapkan ke string ini.

str
Referensi ke CThisSimpleString objek.

bMFCDLL
Boolean yang menentukan apakah proyek adalah DLL MFC atau tidak.

BaseType
Jenis dasar string.

var
Objek varian untuk ditetapkan ke string ini.

ch
Karakter ANSI atau Unicode untuk ditetapkan ke string.

pszSrc
Penunjuk ke string asli yang ditetapkan.

Keterangan

Operator penugasan menerima objek lain CStringT , penunjuk karakter, atau satu karakter. Pengecualian memori dapat terjadi setiap kali Anda menggunakan operator ini karena penyimpanan baru dapat dialokasikan.

Untuk informasi tentang CThisSimpleString, lihat bagian Keterangan dari CStringT::CStringT.

Catatan

Meskipun dimungkinkan untuk membuat CStringT instans yang berisi karakter null yang disematkan, kami sarankan untuk melawannya. Metode dan operator panggilan pada CStringT objek yang berisi karakter null yang disematkan dapat menghasilkan hasil yang tidak diinginkan.

CStringT::operator +

Menggabungkan dua string atau karakter dan string.

friend CStringT operator+(const CStringT& str1, const CStringT& str2);
friend CStringT operator+(const CStringT& str1, PCXSTR psz2);
friend CStringT operator+(PCXSTR psz1, const CStringT& str2,);
friend CStringT operator+(char ch1, const CStringT& str2,);
friend CStringT operator+(const CStringT& str1, char ch2);
friend CStringT operator+(const CStringT& str1, wchar_t ch2);
friend CStringT operator+(wchar_t ch1, const CStringT& str2,);

Parameter

ch1
Karakter ANSI atau Unicode untuk digabungkan dengan string.

ch2
Karakter ANSI atau Unicode untuk digabungkan dengan string.

str1
CStringT untuk digabungkan dengan string atau karakter.

str2
CStringT untuk digabungkan dengan string atau karakter.

psz1
Penunjuk ke string yang dihentikan null untuk digabungkan dengan string atau karakter.

psz2
Penunjuk ke string untuk digabungkan dengan string atau karakter.

Keterangan

Ada tujuh bentuk CStringT::operator+ kelebihan beban fungsi. Versi pertama menggabungkan dua objek yang ada CStringT . Dua CStringT berikutnya menggabungkan objek dan string yang dihentikan null. Dua CStringT berikutnya menggabungkan objek dan karakter ANSI. Dua terakhir menggabungkan CStringT objek dan karakter Unicode.

Catatan

Meskipun dimungkinkan untuk membuat CStringT instans yang berisi karakter null yang disematkan, kami sarankan untuk melawannya. Metode dan operator panggilan pada CStringT objek yang berisi karakter null yang disematkan dapat menghasilkan hasil yang tidak diinginkan.

Contoh

// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;
CAtlString s1(_T("dog ")), s2(_T(" awake")), s3;  // Empty CAtlString objects

s1= _T("The ") + s1;
s3= s1 + _T('i');
s3= s3 + _T('s');
s3= s3 + s2;
ASSERT(s3 == _T("The dog is awake"));   

CStringT::operator +=

Menggabungkan karakter ke akhir string.

CStringT& operator+=(const CThisSimpleString& str);

template<bool bMFCDLL>
CStringT& operator+=(const const CSimpleStringT<BaseType, bMFCDLL>& str);

template<int t_nSize>
CStringT& operator+=(const CStaticString<XCHAR, t_nSize>& strSrc);
CStringT& operator+=(PCXSTR pszSrc);
CStringT& operator+=(PCYSTR pszSrc);
CStringT& operator+=(char ch);
CStringT& operator+=(unsigned char ch);
CStringT& operator+=(wchar_t ch);
CStringT& operator+=(const VARIANT& var);

Parameter

str
Referensi ke CThisSimpleString objek.

bMFCDLL
Boolean yang menentukan apakah proyek adalah DLL MFC atau tidak.

BaseType
Jenis dasar string.

var
Objek varian untuk digabungkan ke string ini.

ch
Karakter ANSI atau Unicode untuk digabungkan dengan string.

pszSrc
Penunjuk ke string asli yang sedang digabungkan.

strSrc
A CStringT untuk menggabungkan ke string ini.

Keterangan

Operator menerima objek lain CStringT , penunjuk karakter, atau satu karakter. Pengecualian memori dapat terjadi setiap kali Anda menggunakan operator perangkaian ini karena penyimpanan baru dapat dialokasikan untuk karakter yang ditambahkan ke objek ini CStringT .

Untuk informasi tentang CThisSimpleString, lihat bagian Keterangan dari CStringT::CStringT.

Catatan

Meskipun dimungkinkan untuk membuat CStringT instans yang berisi karakter null yang disematkan, kami sarankan untuk melawannya. Metode dan operator panggilan pada CStringT objek yang berisi karakter null yang disematkan dapat menghasilkan hasil yang tidak diinginkan.

Contoh

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

CAtlString s(_T("abc"));
ASSERT((s += _T("def")) == _T("abcdef"));   

CStringT::operator ==

Menentukan apakah dua string secara logis sama.

friend bool operator==(const CStringT& str1, const CStringT& str2) throw();
friend bool operator==(const CStringT& str1, PCXSTR psz2) throw();
friend bool operator==(const CStringT& str1, PCYSTR psz2) throw();
friend bool operator==(const CStringT& str1, XCHAR ch2) throw();
friend bool operator==(PCXSTR psz1, const CStringT& str2) throw();
friend bool operator==(PCYSTR psz1, const CStringT& str2,) throw();
friend bool operator==(XCHAR ch1, const CStringT& str2,) throw();

Parameter

ch1
Karakter ANSI atau Unicode untuk perbandingan.

ch2
Karakter ANSI atau Unicode untuk perbandingan.

str1
Untuk CStringT perbandingan.

str2
Untuk CStringT perbandingan.

psz1
Penunjuk ke string null-terminated untuk perbandingan.

psz2
Penunjuk ke string null-terminated untuk perbandingan.

Keterangan

Menguji apakah string atau karakter di sisi kiri sama dengan string atau karakter di sisi kanan, dan mengembalikan TRUE atau FALSE sesuai.

Contoh

// typedef CStringT< TCHAR, StrTraitATL< TCHAR > > CAtlString;
CAtlString s1(_T("dog")), s2(_T("f")), s3(_T("dog"));

ASSERT(s1 == _T("dog"));
ASSERT(s2 == _T('f'));
ASSERT(s1 == s3);   

CStringT::operator !=

Menentukan apakah dua string secara logis tidak sama.

friend bool operator!=(const CStringT& str1, const CStringT& str2) throw();
friend bool operator!=(const CStringT& str1, PCXSTR psz2) throw();
friend bool operator!=(const CStringT& str1, PCYSTR psz2) throw();
friend bool operator!=(const CStringT& str1, XCHAR ch2) throw();
friend bool operator!=(PCXSTR psz1, const CStringT& str2) throw();
friend bool operator!=(PCYSTR psz1, const CStringT& str2,) throw();
friend bool operator!=(XCHAR ch1, const CStringT& str2,) throw();

Parameter

ch1
Karakter ANSI atau Unicode untuk digabungkan dengan string.

ch2
Karakter ANSI atau Unicode untuk digabungkan dengan string.

str1
Untuk CStringT perbandingan.

str2
Untuk CStringT perbandingan.

psz1
Penunjuk ke string null-terminated untuk perbandingan.

psz2
Penunjuk ke string null-terminated untuk perbandingan.

Keterangan

Menguji apakah string atau karakter di sisi kiri tidak sama dengan string atau karakter di sisi kanan.

Contoh

// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;
CAtlString s1(_T("cat")), s2(_T("f")), s3(_T("horse"));

ASSERT(s1 != _T("dog"));
ASSERT(s2 != _T('t'));
ASSERT(s1 != s2);   

CStringT::operator <

Menentukan apakah string di sisi kiri operator kurang dari string di sisi kanan.

friend bool operator<(const CStringT& str1, const CStringT& str2) throw();
friend bool operator<(const CStringT& str1, PCXSTR psz2) throw();
friend bool operator<(PCXSTR psz1, const CStringT& str2) throw();

Parameter

str1
Untuk CStringT perbandingan.

str2
Untuk CStringT perbandingan.

psz1
Penunjuk ke string null-terminated untuk perbandingan.

psz2
Penunjuk ke string null-terminated untuk perbandingan.

Keterangan

Perbandingan leksikografis antara string, karakter menurut karakter hingga:

  • Ini menemukan dua karakter yang sesuai tidak sama, dan hasil perbandingannya diambil sebagai hasil dari perbandingan antara string.

  • Ini tidak menemukan ketidaksamaan, tetapi satu string memiliki lebih banyak karakter daripada yang lain, dan string yang lebih pendek dianggap kurang dari string yang lebih panjang.

  • Ini tidak menemukan ketidaksetaraan dan menemukan bahwa string memiliki jumlah karakter yang sama, sehingga string sama.

Contoh

// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;
CAtlString s1(_T("cat")), s2(_T("cats")), s3(_T("dogs"));

ASSERT(s1 < _T("dog"));
ASSERT(s1 < _T("cats"));
ASSERT(s2 < _T("cats and dogs"));
ASSERT(s2 < s3);   

CStringT::operator >

Menentukan apakah string di sisi kiri operator lebih besar dari string di sisi kanan.

friend bool operator>(const CStringT& str1, const CStringT& str2) throw();
friend bool operator>(const CStringT& str1, PCXSTR psz2) throw();
friend bool operator>(PCXSTR psz1, const CStringT& str2) throw();

Parameter

str1
Untuk CStringT perbandingan.

str2
Untuk CStringT perbandingan.

psz1
Penunjuk ke string null-terminated untuk perbandingan.

psz2
Penunjuk ke string null-terminated untuk perbandingan.

Keterangan

Perbandingan leksikografis antara string, karakter menurut karakter hingga:

  • Ini menemukan dua karakter yang sesuai tidak sama, dan hasil perbandingannya diambil sebagai hasil dari perbandingan antara string.

  • Ini tidak menemukan ketidaksamaan, tetapi satu string memiliki lebih banyak karakter daripada yang lain, dan string yang lebih pendek dianggap kurang dari string yang lebih panjang.

  • Ini tidak menemukan ketidaksetaraan dan menemukan bahwa string memiliki jumlah karakter yang sama, sehingga string sama.

Contoh

// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;
CAtlString s1(_T("cat")), s2(_T("cats")), s3(_T("dogs"));
ASSERT(_T("dog") > s1);
ASSERT(_T("cats") > s1);
ASSERT(_T("cats and dogs") > s2);
ASSERT(s3 > s2);   

CStringT::operator <=

Menentukan apakah string di sisi kiri operator kurang dari atau sama dengan string di sisi kanan.

friend bool operator<=(const CStringT& str1, const CStringT& str2) throw();
friend bool operator<=(const CStringT& str1, PCXSTR psz2) throw();
friend bool operator<=(PCXSTR psz1, const CStringT& str2) throw();

Parameter

str1
Untuk CStringT perbandingan.

str2
Untuk CStringT perbandingan.

psz1
Penunjuk ke string null-terminated untuk perbandingan.

psz2
Penunjuk ke string null-terminated untuk perbandingan.

Keterangan

Perbandingan leksikografis antara string, karakter menurut karakter hingga:

  • Ini menemukan dua karakter yang sesuai tidak sama, dan hasil perbandingannya diambil sebagai hasil dari perbandingan antara string.

  • Ini tidak menemukan ketidaksamaan, tetapi satu string memiliki lebih banyak karakter daripada yang lain, dan string yang lebih pendek dianggap kurang dari string yang lebih panjang.

  • Ini tidak menemukan ketidaksetaraan dan menemukan bahwa string memiliki jumlah karakter yang sama, sehingga string sama.

Contoh

// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;
CAtlString s1(_T("cat")), s2(_T("cats")), s3(_T("dogs"));

ASSERT(s1 <= _T("dog"));
ASSERT(s1 <= _T("cat"));
ASSERT(s3 <= _T("dogs and cats"));
ASSERT(s2 <= s3);   

CStringT::operator >=

Menentukan apakah string di sisi kiri operator lebih besar dari atau sama dengan string di sisi kanan.

friend bool operator>=(const CStringT& str1, const CStringT& str2) throw();
friend bool operator>=(const CStringT& str1, PCXSTR psz2) throw();
friend bool operator>=(PCXSTR psz1, const CStringT& str2) throw();

Parameter

str1
Untuk CStringT perbandingan.

str2
Untuk CStringT perbandingan.

psz1
Penunjuk ke string untuk perbandingan.

psz2
Penunjuk ke string untuk perbandingan.

Keterangan

Perbandingan leksikografis antara string, karakter menurut karakter hingga:

  • Ini menemukan dua karakter yang sesuai tidak sama, dan hasil perbandingannya diambil sebagai hasil dari perbandingan antara string.

  • Ini tidak menemukan ketidaksamaan, tetapi satu string memiliki lebih banyak karakter daripada yang lain, dan string yang lebih pendek dianggap kurang dari string yang lebih panjang.

  • Ini tidak menemukan ketidaksetaraan dan menemukan bahwa string memiliki jumlah karakter yang sama, sehingga string sama.

Contoh

// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;
CAtlString s1(_T("cat")), s2(_T("cats")), s3(_T("dogs"));

ASSERT(_T("dog") >= s1);
ASSERT(_T("cats and dogs") >= s2);
ASSERT(s3 >= s2);   

CStringT::Remove

Menghapus semua instans karakter yang ditentukan dari string.

int Remove(XCHAR chRemove);

Parameter

chRemove
Karakter yang akan dihapus dari string.

Tampilkan Nilai

Jumlah karakter yang dihapus dari string. Nol jika string tidak diubah.

Keterangan

Perbandingan untuk karakter peka huruf besar/kecil.

Contoh

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

CAtlString str(_T("This is a test."));
int n = str.Remove(_T('t'));
ASSERT(n == 2);
ASSERT(str == _T("This is a es."));   

CStringT::Replace

Ada dua versi Replace. Versi pertama menggantikan satu atau beberapa salinan substring dengan menggunakan substring lain. Kedua substring dihentikan null. Versi kedua menggantikan satu atau beberapa salinan karakter dengan menggunakan karakter lain. Kedua versi beroperasi pada data karakter yang disimpan di CStringT.

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

Parameter

pszOld
Penunjuk ke string yang dihentikan null untuk digantikan oleh pszNew.

pszNew
Penunjuk ke string null-terminated yang menggantikan pszOld.

chOld
Karakter yang akan digantikan oleh chNew.

chNew
Karakter menggantikan chOld.

Tampilkan Nilai

Mengembalikan jumlah instans karakter atau substring yang diganti, atau nol jika string tidak diubah.

Keterangan

Replace dapat mengubah panjang string karena pszNew dan pszOld tidak harus panjangnya sama, dan beberapa salinan substring lama dapat diubah ke yang baru. Fungsi ini melakukan kecocokan peka huruf besar/kecil.

CStringT Contoh instans adalah CString, , CStringAdan CStringW.

Untuk CStringA, Replace bekerja dengan karakter ANSI atau multibyte (MBCS). Untuk CStringW, Replace bekerja dengan karakter lebar.

Untuk CString, jenis data karakter dipilih pada waktu kompilasi, berdasarkan apakah konstanta dalam tabel berikut ditentukan.

Konstanta yang Ditentukan Tipe Data Karakter
_UNICODE Karakter lebar
_MBCS Karakter multi-byte
Tidak keduanya Karakter byte tunggal
Keduanya Tidak terdefinisi

Contoh

// 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::ReverseFind

Mencari objek ini CStringT untuk kecocokan terakhir karakter.

int ReverseFind(XCHAR ch) const throw();

Parameter

ch
Karakter yang akan dicari.

Tampilkan Nilai

Indeks berbasis nol dari karakter terakhir dalam objek ini CStringT yang cocok dengan karakter yang diminta, atau -1 jika karakter tidak ditemukan.

Keterangan

Fungsi ini mirip dengan fungsi strrchrrun-time .

Contoh

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

CAtlString s(_T("abcabc"));
ASSERT(s.ReverseFind(_T('b')) == 4);   

Mengekstrak karakter terakhir (yaitu, paling kanan) nCount dari objek ini CStringT dan mengembalikan salinan substring yang diekstrak.

CStringT Right(int nCount) const;

Parameter

nCount
Jumlah karakter yang akan diekstrak dari objek ini CStringT .

Tampilkan Nilai

Objek CStringT yang berisi salinan rentang karakter yang ditentukan. Objek yang dikembalikan CStringT dapat kosong.

Keterangan

Jika nCount melebihi panjang string, maka seluruh string diekstrak. Right mirip dengan fungsi Dasar Right (kecuali bahwa indeks di Dasar berbasis nol).

Untuk set karakter multibyte (MBCS), nCount mengacu pada setiap karakter 8-bit; yaitu, byte prospek dan jejak dalam satu karakter multibyte dihitung sebagai dua karakter.

Contoh

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

CAtlString s(_T("abcdef"));
ASSERT(s.Right(2) == _T("ef"));   

CStringT::SetSysString

Merealokasi yang BSTR dialokasikan ke oleh pbstr dan menyalin konten CStringT objek ke dalamnya, termasuk NULL karakter .

BSTR SetSysString(BSTR* pbstr) const;

Parameter

pbstr
Penunjuk ke string karakter.

Tampilkan Nilai

String baru.

Keterangan

Bergantung pada konten CStringT objek, nilai yang dirujuk BSTR oleh pbstr dapat berubah. Fungsi ini melemparkan CMemoryException memori jika tidak mencukupkan ada.

Fungsi ini biasanya digunakan untuk mengubah nilai string yang diteruskan oleh referensi untuk Automation.

Contoh

BSTR bstr = ::SysAllocString(L"Golf is fun!");

// create a CAtlString and change the OLE
// string to the contents of the BSTR
// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;

CAtlString str(_T("Soccer is best!"));
BSTR bstr2 = str.SetSysString(&bstr);

// Now, both bstr and bstr2 reference a single instance of
// the "Soccer" string. The "Golf" string has been freed.
ASSERT(bstr2 == bstr);   

CStringT::SpanExcluding

Mengekstrak karakter dari string, dimulai dengan karakter pertama, yang tidak ada dalam kumpulan karakter yang diidentifikasi oleh pszCharSet.

CStringT SpanExcluding(PCXSTR pszCharSet) const;

Parameter

pszCharSet
String yang ditafsirkan sebagai sekumpulan karakter.

Tampilkan Nilai

Substring yang berisi karakter dalam string yang tidak ada di pszCharSet, dimulai dengan karakter pertama dalam string dan diakhir dengan karakter pertama yang ditemukan dalam string yang juga ada di pszCharSet (yaitu, dimulai dengan karakter pertama dalam string dan hingga tetapi mengecualikan karakter pertama dalam string yang ditemukan pszCharSet). Ini mengembalikan seluruh string jika tidak ada karakter dalam pszCharSet yang ditemukan dalam string.

Keterangan

SpanExcluding mengekstrak dan mengembalikan semua karakter sebelum kemunculan pertama karakter dari pszCharSet (dengan kata lain, karakter dari pszCharSet dan semua karakter yang mengikutinya dalam string, tidak dikembalikan). Jika tidak ada karakter dari pszCharSet yang ditemukan dalam string, maka SpanExcluding mengembalikan seluruh string.

Contoh

// The string can be delimited by a semicolon(;),
//  a comma(,), a period(.), a dash(-),
// or an apostrophe(').
// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;

CAtlString src(_T("World Cup '98"));

_tprintf_s(_T("%s"),src.SpanExcluding(_T(";,.-'")));

CStringT::SpanIncluding

Mengekstrak karakter dari string, dimulai dengan karakter pertama, yang berada dalam kumpulan karakter yang diidentifikasi oleh pszCharSet.

CStringT SpanIncluding(PCXSTR pszCharSet) const;

Parameter

pszCharSet
String yang ditafsirkan sebagai sekumpulan karakter.

Tampilkan Nilai

Substring yang berisi karakter dalam string yang ada di pszCharSet, dimulai dengan karakter pertama dalam string dan berakhir ketika karakter ditemukan dalam string yang tidak ada di pszCharSet. SpanIncluding mengembalikan substring kosong jika karakter pertama dalam string tidak berada dalam set yang ditentukan.

Keterangan

Jika karakter pertama string tidak berada dalam kumpulan karakter, maka SpanIncluding mengembalikan string kosong. Jika tidak, ia mengembalikan urutan karakter berturut-turut yang ada di set.

Contoh

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

CAtlString str(_T("cabbage"));
CAtlString res = str.SpanIncluding(_T("abc"));
ASSERT(res == _T("cabba"));
res = str.SpanIncluding(_T("xyz"));
ASSERT(res.IsEmpty());   

CStringT::Tokenize

Menemukan token berikutnya dalam string target

CStringT Tokenize(PCXSTR pszTokens, int& iStart) const;

Parameter

pszTokens
String yang berisi pembatas token. Urutan pemisah ini tidak penting.

iStart
Indeks berbasis nol untuk memulai pencarian.

Tampilkan Nilai

Objek CStringT yang berisi nilai token saat ini.

Keterangan

Fungsi ini Tokenize menemukan token berikutnya dalam string target. Kumpulan karakter dalam pszTokens menentukan kemungkinan pembatas token yang akan ditemukan. Pada setiap panggilan ke Tokenize fungsi dimulai pada iStart, lewati pemisah terkemuka, dan mengembalikan objek yang CStringT berisi token saat ini, yang merupakan string karakter hingga karakter pemisah berikutnya. Nilai iStart diperbarui menjadi posisi setelah karakter pemisah akhir, atau -1 jika akhir string tercapai. Lebih banyak token dapat dipecah dari string target lainnya dengan serangkaian panggilan ke Tokenize, menggunakan iStart untuk melacak di mana dalam string token berikutnya akan dibaca. Ketika tidak ada lagi token, fungsi akan mengembalikan string kosong dan iStart akan diatur ke -1.

Tidak seperti fungsi tokenisasi CRT seperti strtok_s, , _strtok_s_l, wcstok_s_wcstok_s_l, _mbstok_s, _mbstok_s_l, Tokenize tidak mengubah string target.

Contoh

// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;
CAtlString str(_T("%First Second#Third"));
CAtlString resToken;
int curPos = 0;

resToken= str.Tokenize(_T("% #"),curPos);
while (resToken != _T(""))
{
   _tprintf_s(_T("Resulting token: %s\n"), resToken);
   resToken = str.Tokenize(_T("% #"), curPos);
};   

Output dari contoh ini adalah sebagai berikut:

Resulting Token: First
Resulting Token: Second
Resulting Token: Third

CStringT::Trim

Memangkas karakter di depan dan di belakang dari string.

CStringT& Trim(XCHAR chTarget);
CStringT& Trim(PCXSTR pszTargets);
CStringT& Trim();

Parameter

chTarget
Karakter target yang akan dipangkas.

pszTargets
Penunjuk ke string yang berisi karakter target yang akan dipangkas. Semua kemunculan karakter di awal dan akhir akan dipangkas pszTargets dari CStringT objek.

Tampilkan Nilai

Mengembalikan string yang dipangkas.

Keterangan

Menghapus semua kemunculan awal dan akhir dari salah satu hal berikut:

  • Karakter yang ditentukan oleh chTarget.

  • Semua karakter yang ditemukan dalam string yang ditentukan oleh pszTargets.

  • Spasi.

Contoh

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

CAtlString str;
str = _T("******Soccer is best!?!?!?!?!");

_tprintf_s(_T("Before: \"%s\"\n"), (LPCTSTR)str);
_tprintf_s(_T("After : \"%s\"\n"), (LPCTSTR)str.Trim(_T("?!*")));

// Output:
// --------------------------
// Before: ******Soccer is best!?!?!?!?!
// After: Soccer is best

Output dari contoh ini adalah sebagai berikut:

Before: "******Soccer is best, but liquor is quicker!!!!!"
After : "Soccer is best, but liquor is quicker"

CStringT::TrimLeft

Memangkas karakter utama dari string.

CStringT& TrimLeft(XCHAR chTarget);
CStringT& TrimLeft(PCXSTR pszTargets);
CStringT& TrimLeft();

Parameter

chTarget
Karakter target yang akan dipangkas.

pszTargets
Penunjuk ke string yang berisi karakter target yang akan dipangkas. Semua kemunculan karakter di depan akan dipangkas pszTargets dari CStringT objek.

Tampilkan Nilai

String yang dipangkas yang dihasilkan.

Keterangan

Menghapus semua kemunculan awal dan akhir dari salah satu hal berikut:

  • Karakter yang ditentukan oleh chTarget.

  • Semua karakter yang ditemukan dalam string yang ditentukan oleh pszTargets.

  • Spasi.

Contoh

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

CAtlString str;
str = _T("\t\t   ****Soccer is best!");

_tprintf_s(_T("Before: \"%s\"\n"), (LPCTSTR)str);
_tprintf_s(_T("After: \"%s\"\n"), (LPCTSTR)str.TrimLeft(_T("\t *")));

// Output:
// --------------------------
// Before:     ****Soccer is best!
// After: Soccer is best!

CStringT::TrimRight

Memangkas karakter berikutnya dari string.

CStringT& TrimRight(XCHAR chTarget);
CStringT& TrimRight(PCXSTR pszTargets);
CStringT& TrimRight();

Parameter

chTarget
Karakter target yang akan dipangkas.

pszTargets
Penunjuk ke string yang berisi karakter target yang akan dipangkas. Semua kemunculan karakter berikutnya di akan dipangkas pszTargets dari CStringT objek.

Tampilkan Nilai

Mengembalikan CStringT objek yang berisi string yang dipangkas.

Keterangan

Menghapus kemunculan berikutnya dari salah satu hal berikut:

  • Karakter yang ditentukan oleh chTarget.

  • Semua karakter yang ditemukan dalam string yang ditentukan oleh pszTargets.

  • Spasi.

Versi CStringT& TrimRight(XCHAR chTarget) menerima satu parameter karakter dan menghapus semua salinan karakter tersebut dari akhir CStringT data string. Ini dimulai dari akhir string dan bekerja ke arah depan. Ini berhenti ketika menemukan karakter yang berbeda atau ketika CStringT kehabisan data karakter.

Versi CStringT& TrimRight(PCXSTR pszTargets) menerima string null-terminated yang berisi semua karakter berbeda untuk dicari. Ini menghapus semua salinan karakter tersebut CStringT dalam objek. Ini dimulai di akhir string dan bekerja ke depan. Ini berhenti ketika menemukan karakter yang tidak ada dalam string target, atau ketika CStringT kehabisan data karakter. Ini tidak mencoba mencocokkan seluruh string target dengan substring di akhir CStringT.

Versi ini CStringT& TrimRight() tidak memerlukan parameter. Ini memangkas karakter spasi kosong berikutnya dari akhir CStringT string. Karakter spasi kosong dapat berupa pemisah baris, spasi, atau tab.

Contoh

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

CAtlString str;
str = _T("Soccer is best!?!?!?!?!");

_tprintf_s(_T("Before: \"%s\"\n"), (LPCTSTR)str);
_tprintf_s(_T("After : \"%s\"\n"), (LPCTSTR)str.TrimRight(_T("?!")));

// Output:
// --------------------------
// Before: Soccer is best!?!?!?!?!
// After: Soccer is best

Lihat juga

Bagan Hierarki
Kelas Bersama ATL/MFC
CSimpleStringT Kelas