Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
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:
CStringTobjek dapat tumbuh karena operasi perangkaian.CStringTobjek mengikuti "semantik nilai".CStringTAnggap objek sebagai string aktual, bukan sebagai penunjuk ke string.Anda dapat dengan bebas mengganti
CStringTobjek untukPCXSTRargumen 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
CStringT
Persyaratan
| Kepala Halaman | 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, , wcscoll_mbscoll, _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 strcoll.wcscoll
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 strcmp.wcscmp
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 _stricmp._wcsicmp
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(LPCSTRlpsz): Membuat UnicodeCStringTdari string ANSI. Anda juga dapat menggunakan konstruktor ini untuk memuat sumber daya string seperti yang ditunjukkan pada contoh di bawah ini.CStringT(LPCWSTRlpsz): MembuatCStringTdari string Unicode.CStringT(const unsigned char*psz): Memungkinkan Anda membuatCStringTdari pointer keunsigned 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
FormatMessageV
CStringT::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 chpsz.
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);
CStringT::Right
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("abcdef"));
_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