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 untukPCXSTR
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
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 _tcscoll
teks 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 _tcscoll
teks generik , yang didefinisikan dalam TCHAR.H
, peta ke strcoll
, , wcscoll
atau _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
, , _mbscoll
wcscoll
, _strcoll_l
, _wcscoll_l
, _mbscoll_l.
CStringT::CollateNoCase
Membandingkan dua string menggunakan fungsi _tcscoll
teks 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 _tcscoll
teks generik , yang didefinisikan dalam TCHAR.H
, peta ke stricoll
, , wcsicoll
atau _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 , , _mbscoll
wcscoll
, _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 _tcscmp
teks generik , yang didefinisikan dalam TCHAR.H
, peta ke strcmp
, , wcscmp
atau _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 , , _mbscmp
wcscmp
.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 _tcsicmp
teks 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 UnicodeCStringT
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
): MembuatCStringT
dari string Unicode.CStringT
(const unsigned char*
psz
): Memungkinkan Anda membuatCStringT
dari 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
, , CStringA
atau 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 strchr
run-time ) dan string (mirip strstr
dengan ).
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 printf
run-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 printf
run-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::FormatMessage
memanggil , 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 printf
run-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
, , CStringA
dan 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 strrchr
run-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("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
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk