CStringT
Sınıf
Bu sınıf bir CStringT
nesneyi temsil eder.
Sözdizimi
template<typename BaseType, class StringTraits>
class CStringT :
public CSimpleStringT<BaseType,
_CSTRING_IMPL_::_MFCDLLTraitsCheck<BaseType, StringTraits>::c_bIsMFCDLLTraits>
Parametreler
BaseType
Dize sınıfının karakter türü. Aşağıdakilerden biri olabilir:
char
(ANSI karakter dizeleri için).wchar_t
(Unicode karakter dizeleri için).TCHAR
(hem ANSI hem de Unicode karakter dizeleri için).
StringTraits
Dize sınıfının C Çalışma Zamanı (CRT) Kitaplığı desteğine ihtiyacı olup olmadığını ve dize kaynaklarının nerede bulunduğunu belirler. Aşağıdakilerden biri olabilir:
StrTraitATL<wchar_t | char | TCHAR, ChTraitsCRT<wchar_t | char | TCHAR>>
sınıfı CRT desteği gerektirir ve tarafından
m_hInstResource
belirtilen modülde (uygulamanın modül sınıfının bir üyesi) kaynak dizelerini arar.StrTraitATL<wchar_t | char | TCHAR, ChTraitsOS<wchar_t | char |TCHAR>>
sınıfı CRT desteği gerektirmez ve tarafından
m_hInstResource
belirtilen modülde (uygulamanın modül sınıfının bir üyesi) kaynak dizeleri arar.StrTraitMFC<wchar_t | char | TCHAR, ChTraitsCRT<wchar_t | char | TCHAR>>
sınıfı CRT desteği gerektirir ve standart MFC arama algoritmasını kullanarak kaynak dizelerini arar.
StrTraitMFC<wchar_t | char | TCHAR, ChTraitsOS<wchar_t | char | TCHAR>>
sınıfı CRT desteği gerektirmez ve standart MFC arama algoritmasını kullanarak kaynak dizelerini arar.
Üyeler
Ortak Oluşturucular
Veri Akışı Adı | Açıklama |
---|---|
CStringT::CStringT |
Bir CStringT nesneyi çeşitli yollarla oluşturur. |
CStringT::~CStringT |
Bir CStringT nesneyi yok eder. |
Genel Yöntemler
Veri Akışı Adı | Açıklama |
---|---|
CStringT::AllocSysString |
Verilerden CStringT bir BSTR ayırır. |
CStringT::AnsiToOem |
ANSI karakter kümesinden OEM karakter kümesine yerinde dönüştürme yapar. |
CStringT::AppendFormat |
Biçimlendirilmiş verileri var olan CStringT bir nesneye ekler. |
CStringT::Collate |
İki dizeyi karşılaştırır (büyük/küçük harfe duyarlıdır, yerel ayara özgü bilgileri kullanır). |
CStringT::CollateNoCase |
İki dizeyi karşılaştırır (büyük/küçük harfe duyarlı değildir, yerel ayara özgü bilgileri kullanır). |
CStringT::Compare |
İki dizeyi karşılaştırır (büyük/küçük harfe duyarlı). |
CStringT::CompareNoCase |
İki dizeyi karşılaştırır (büyük/küçük harfe duyarsız). |
CStringT::Delete |
Dizeden bir karakter veya karakter siler. |
CStringT::Find |
Daha büyük bir dizenin içinde bir karakter veya alt dize bulur. |
CStringT::FindOneOf |
Bir kümedeki ilk eşleşen karakteri bulur. |
CStringT::Format |
Dizeyi olduğu gibi sprintf biçimlendirin. |
CStringT::FormatMessage |
İleti dizesini biçimlendirin. |
CStringT::FormatMessageV |
Değişken bağımsız değişken listesi kullanarak ileti dizesini biçimlendirin. |
CStringT::FormatV |
Bağımsız değişkenlerin değişken listesini kullanarak dizeyi biçimlendirin. |
CStringT::GetEnvironmentVariable |
Dizeyi belirtilen ortam değişkeninin değerine ayarlar. |
CStringT::Insert |
Dize içinde verilen dizine tek bir karakter veya alt dize ekler. |
CStringT::Left |
Dizenin sol kısmını ayıklar. |
CStringT::LoadString |
Windows kaynağından var olan CStringT bir nesneyi yükler. |
CStringT::MakeLower |
Bu dizedeki tüm karakterleri küçük harflere dönüştürür. |
CStringT::MakeReverse |
Dizeyi tersine çevirir. |
CStringT::MakeUpper |
Bu dizedeki tüm karakterleri büyük harf karakterlere dönüştürür. |
CStringT::Mid |
Dizenin orta kısmını ayıklar. |
CStringT::OemToAnsi |
OEM karakter kümesinden ANSI karakter kümesine yerinde dönüştürme yapar. |
CStringT::Remove |
Belirtilen karakterleri bir dizeden kaldırır. |
CStringT::Replace |
Belirtilen karakterleri diğer karakterlerle değiştirir. |
CStringT::ReverseFind |
Daha büyük bir dizenin içinde bir karakter bulur; en sonundan başlar. |
CStringT::Right |
Dizenin doğru bölümünü ayıklar. |
CStringT::SetSysString |
Bir nesneden alınan verilerle var olan BSTR bir CStringT nesneyi ayarlar. |
CStringT::SpanExcluding |
tarafından tanımlanan pszCharSet karakter kümesinde olmayan ilk karakterden başlayarak dizeden karakterleri ayıklar. |
CStringT::SpanIncluding |
Yalnızca kümedeki karakterleri içeren bir alt dizeyi ayıklar. |
CStringT::Tokenize |
Hedef dizede belirtilen belirteçleri ayıklar. |
CStringT::Trim |
Dizedeki tüm baştaki ve sondaki boşluk karakterlerini kırpar. |
CStringT::TrimLeft |
Dizedeki baştaki boşluk karakterlerini kırpar. |
CStringT::TrimRight |
Dizedeki sondaki boşluk karakterlerini kırpar. |
İşleçler
Veri Akışı Adı | Açıklama |
---|---|
CStringT::operator = |
Nesneye yeni bir CStringT değer atar. |
CStringT::operator + |
İki dizeyi veya bir karakter ile dizeyi birleştirir. |
CStringT::operator += |
Yeni bir dizeyi var olan bir dizenin sonuna birleştirir. |
CStringT::operator == |
İki dizenin mantıksal olarak eşit olup olmadığını belirler. |
CStringT::operator != |
İki dizenin mantıksal olarak eşit olup olmadığını belirler. |
CStringT::operator < |
İşlecin sol tarafındaki dizenin sağ taraftaki dizeden küçük olup olmadığını belirler. |
CStringT::operator > |
İşlecin sol tarafındaki dizenin sağ taraftaki dizeden büyük olup olmadığını belirler. |
CStringT::operator <= |
İşlecin sol tarafındaki dizenin sağ taraftaki dizeden küçük veya buna eşit olup olmadığını belirler. |
CStringT::operator >= |
İşlecin sol tarafındaki dizenin sağ taraftaki dizeden büyük veya buna eşit olup olmadığını belirler. |
Açıklamalar
CStringT
sınıfından CSimpleStringT
devralır. Karakter işleme, sıralama ve arama gibi gelişmiş özellikler tarafından CStringT
uygulanır.
Not
CStringT
nesneleri özel durumlar oluşturabilen nesnelerdir. Herhangi bir nedenle bir CStringT
nesnenin belleği bittiğinde bu durum oluşur.
Nesne CStringT
, değişken uzunlukta bir karakter dizisini içerir. CStringT
, Temel'in söz dizimine benzer söz dizimini kullanan işlevler ve işleçler sağlar. Birleştirme ve karşılaştırma işleçleri, basitleştirilmiş bellek yönetimiyle CStringT
birlikte nesneleri normal karakter dizilerine göre daha kolay kullanır.
Not
Katıştırılmış null karakterler içeren örnekler oluşturmak CStringT
mümkün olsa da, buna karşı öneririz. Katıştırılmış null karakterler içeren nesnelerde CStringT
yöntemleri ve işleçleri çağırmak istenmeyen sonuçlar üretebilir.
ve StringTraits
parametrelerinin BaseType
farklı birleşimlerini kullanarak nesneler, CStringT
ATL kitaplıkları tarafından önceden tanımlanmış olan aşağıdaki türlerde gelebilir.
ATL uygulamasında kullanıyorsanız:
CString
, CStringA
ve CStringW
MFC DLL'sinden (MFC90.DLL) dışarı aktarılır, hiçbir zaman kullanıcı DLL'lerinden dışarı aktarılmaz. Bu, birden çok kez tanımlanmasını önlemek CStringT
için yapılır.
Not
Kodunuz CStringT Kullanarak Dize Sınıflarını Dışarı Aktarma bölümünde açıklanan bağlayıcı hataları için geçici çözümü içeriyorsa, bu kodu kaldırmanız gerekir. Artık buna ihtiyacınız yoktur.
MFC tabanlı uygulamalarda aşağıdaki dize türleri kullanılabilir:
CStringT türü | Bildirim |
---|---|
CStringA |
CRT desteğine sahip bir ANSI karakter türü dizesi. |
CStringW |
CRT desteğine sahip bir Unicode karakter türü dizesi. |
CString |
CRT desteğiyle hem ANSI hem de Unicode karakter türleri. |
Aşağıdaki dize türleri, tanımlandığı ATL_CSTRING_NO_CRT
projelerde kullanılabilir:
CStringT türü | Bildirim |
---|---|
CAtlStringA |
CRT desteği olmayan bir ANSI karakter türü dizesi. |
CAtlStringW |
CRT desteği olmayan bir Unicode karakter türü dizesi. |
CAtlString |
CRT desteği olmadan hem ANSI hem de Unicode karakter türleri. |
Aşağıdaki dize türleri tanımlanmayan ATL_CSTRING_NO_CRT
projelerde kullanılabilir:
CStringT türü | Bildirim |
---|---|
CAtlStringA |
CRT desteğine sahip bir ANSI karakter türü dizesi. |
CAtlStringW |
CRT desteğine sahip bir Unicode karakter türü dizesi. |
CAtlString |
CRT desteğiyle hem ANSI hem de Unicode karakter türleri. |
CString
nesneler de aşağıdaki özelliklere sahiptir:
CStringT
birleştirme işlemleri nedeniyle nesneler büyüyebilir.CStringT
nesneleri "değer semantiğini" izler. Nesneyi birCStringT
dize işaretçisi olarak değil gerçek bir dize olarak düşünün.İşlev bağımsız değişkenleri için
PCXSTR
nesneleri serbestçe değiştirebilirsinizCStringT
.Dize arabellekleri için özel bellek yönetimi. Daha fazla bilgi için bkz . Bellek Yönetimi ve
CStringT
.
CStringT Önceden Tanımlanmış Türler
CStringT
Desteklenen karakter türünü (wchar_t
veya char
) tanımlamak için şablon bağımsız değişkeni kullandığından, yöntem parametre türleri bazen karmaşık olabilir. Bu sorunu basitleştirmek için sınıf genelinde CStringT
önceden tanımlanmış bir tür kümesi tanımlanır ve kullanılır. Aşağıdaki tabloda çeşitli türler listelenmiştir:
Veri Akışı Adı | Açıklama |
---|---|
XCHAR |
Nesneyle aynı karakter türüne CStringT sahip tek bir karakter (wchar_t veya char ) . |
YCHAR |
Nesne olarak CStringT karşı karakter türüne sahip tek bir karakter (wchar_t veya char ). |
PXSTR |
Nesneyle aynı karakter türüne sahip bir karakter dizesinin ( wchar_t veya char ) işaretçisi CStringT . |
PYSTR |
Nesne olarak karşı karakter türüne sahip bir karakter dizesi wchar_t (veya char ) işaretçisi CStringT . |
PCXSTR |
Nesneyle aynı karakter türüne sahip bir const karakter dizesinin ( wchar_t veya char ) işaretçisi CStringT . |
PCYSTR |
Nesne olarak karşı karakter türüne sahip bir const karakter dizesi wchar_t (veya char ) işaretçisi CStringT . |
Not
Daha önce belgelenmemiş yöntemlerini CString
(örneğinAssignCopy
) kullanan kod, aşağıdaki belgelenmiş yöntemlerini CStringT
(veya ReleaseBuffer
gibiGetBuffer
) kullanan kodla değiştirilmelidir. Bu yöntemler öğesinden CSimpleStringT
devralınır.
Devralma Hiyerarşisi
CStringT
Gereksinimler
Üst bilgi | Şunun için kullanın: |
---|---|
cstringt.h |
Yalnızca MFC dize nesneleri |
atlstr.h |
MFC olmayan dize nesneleri |
CStringT::AllocSysString
Türünde BSTR
Otomasyon uyumlu bir dize ayırır ve nesnenin CStringT
içeriğini sonlandırıcı null karakter de dahil olmak üzere içine kopyalar.
BSTR AllocSysString() const;
Dönüş Değeri
Yeni ayrılan dize.
Açıklamalar
MFC programlarında yetersiz bellek varsa bir CMemoryException
Sınıf oluşturulur. ATL programlarında bir CAtlException
oluşturulur. Bu işlev normalde Otomasyon dizelerini döndürmek için kullanılır.
Genellikle, bu dize bir COM işlevine parametre olarak [in]
geçirilirse, çağıranın dizeyi boşaltması gerekir. Bu, Windows SDK'da açıklandığı gibi kullanılarak SysFreeString
yapılabilir. Daha fazla bilgi için bkz . Bir BSTR
için Bellek Ayırma ve Serbest Bırakma.
Windows'daki OLE ayırma işlevleri hakkında daha fazla bilgi için bkz SysAllocString
. Windows SDK'sında.
Örnek
Aşağıdaki örnekte kullanımı gösterilmektedir 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
Bu CStringT
nesnedeki tüm karakterleri ANSI karakter kümesinden OEM karakter kümesine dönüştürür.
void AnsiToOem();
Açıklamalar
tanımlanmışsa _UNICODE
işlev kullanılamaz.
Örnek
// 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
Biçimlendirilmiş verileri var olan CStringT
bir nesneye ekler.
void __cdecl AppendFormat(PCXSTR pszFormat, [, argument] ...);
void __cdecl AppendFormat(UINT nFormatID, [, argument] ...);
Parametreler
pszFormat
Biçim denetimi dizesi.
nFormatID
Biçim denetimi dizesini içeren dize kaynak tanımlayıcısı.
argument
İsteğe bağlı bağımsız değişkenler.
Açıklamalar
Bu işlev, içinde bir dizi karakter ve değer CStringT
biçimlendirip ekler. İsteğe bağlı her bağımsız değişken (varsa) içinde veya tarafından nFormatID
tanımlanan dize kaynağından ilgili biçim belirtimine pszFormat
göre dönüştürülür ve eklenir.
Örnek
// 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
generic-text işlevini _tcscoll
kullanarak iki dizeyi karşılaştırır.
int Collate(PCXSTR psz) const throw();
Parametreler
psz
Karşılaştırma için kullanılan diğer dize.
Dönüş Değeri
Dizeler aynıysa sıfır, < bu CStringT
nesne değerinden psz
küçükse 0 veya > değerinden büyükse CStringT
psz
0.
Açıklamalar
içinde tanımlanan genel metin işlevi _tcscoll
, derleme zamanında tanımlanan TCHAR.H
karakter kümesine strcoll
bağlı olarak , wcscoll
veya _mbscoll
ile eşler. Her işlev, kullanımda olan kod sayfasına göre dizelerin büyük/küçük harfe duyarlı bir karşılaştırmasını yapar. Daha fazla bilgi için bkz. , wcscoll
, _mbscoll
, _strcoll_l
, _wcscoll_l
, , _mbscoll_l.strcoll
CStringT::CollateNoCase
generic-text işlevini _tcscoll
kullanarak iki dizeyi karşılaştırır.
int CollateNoCase(PCXSTR psz) const throw();
Parametreler
psz
Karşılaştırma için kullanılan diğer dize.
Dönüş Değeri
Dizeler aynıysa sıfır (büyük/küçük harf yoksayılıyor), < bu CStringT
nesne küçükse psz
0 (büyük/küçük harf yoksayılıyor) veya > bu CStringT
nesne büyükse psz
0 (büyük/küçük harf yoksayma).
Açıklamalar
içinde tanımlanan genel metin işlevi _tcscoll
, derleme zamanında tanımlanan TCHAR.H
karakter kümesine stricoll
bağlı olarak , wcsicoll
veya _mbsicoll
ile eşler. Her işlev, şu anda kullanımda olan kod sayfasına göre dizelerin büyük/küçük harfe duyarsız bir karşılaştırmasını yapar. Daha fazla bilgi için bkz. strcoll
, wcscoll
, _mbscoll
, _strcoll_l
, _wcscoll_l
, _mbscoll_l
.
Örnek
// 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
İki dizeyi karşılaştırır (büyük/küçük harfe duyarlı).
int Compare(PCXSTR psz) const;
Parametreler
psz
Karşılaştırma için kullanılan diğer dize.
Dönüş Değeri
Dizeler aynıysa sıfır, < bu CStringT
nesne değerinden psz
küçükse 0 veya > değerinden büyükse CStringT
psz
0.
Açıklamalar
içinde tanımlanan genel metin işlevi _tcscmp
, derleme zamanında tanımlanan TCHAR.H
karakter kümesine strcmp
bağlı olarak , wcscmp
veya _mbscmp
ile eşler. Her işlev dizelerin büyük/küçük harfe duyarlı karşılaştırmasını yapar ve yerel ayardan etkilenmez. Daha fazla bilgi için bkz. strcmp
, wcscmp
, _mbscmp
.
Dize katıştırılmış null değerleri içeriyorsa, karşılaştırma amacıyla, dize ilk eklenmiş null karakterde kesilmiş olarak kabul edilir.
Örnek
Aşağıdaki örnekte kullanımı gösterilmektedir 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
İki dizeyi karşılaştırır (büyük/küçük harfe duyarsız).
int CompareNoCase(PCXSTR psz) const throw();
Parametreler
psz
Karşılaştırma için kullanılan diğer dize.
Dönüş Değeri
Dizeler aynıysa sıfır (büyük/küçük harf yoksayılıyor), <bu CStringT
nesne küçükse psz
0 (büyük/küçük harf yoksayılıyor) veya >bu CStringT
nesne büyükse psz
0 (büyük/küçük harf yoksayma).
Açıklamalar
içinde tanımlanan genel metin işlevi _tcsicmp
, derleme zamanında tanımlanan TCHAR.H
karakter kümesine _stricmp
bağlı olarak , _wcsicmp
veya _mbsicmp
ile eşler. Her işlev, dizelerin büyük/küçük harfe duyarlı olmayan bir karşılaştırmasını yapar. Karşılaştırma, yerel ayarın LC_CTYPE
yönüne bağlıdır, ancak öğesine bağlı değildir LC_COLLATE
. Daha fazla bilgi için bkz. _stricmp
, _wcsicmp
, _mbsicmp
, _stricmp_l
, _wcsicmp_l
, _mbsicmp_l
.
Örnek
// 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
Bir CStringT
nesne oluşturur.
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);
Parametreler
pch
Null olarak sonlandırılmayan, uzunluklu nLength
bir karakter dizisine yönelik bir işaretçi.
nLength
içindeki pch
karakter sayısının sayısı.
ch
Tek bir karakter.
pszSrc
Bu CStringT
nesneye kopyalanacak null ile sonlandırılan bir dize.
pStringMgr
Nesnenin bellek yöneticisine yönelik bir CStringT
işaretçi. ve için bellek yönetimi hakkında IAtlStringMgr
daha fazla bilgi için CStringT
bkz . CStringT ile Bellek Yönetimi.
strSrc
Bu CStringT
nesneye kopyalanacak mevcut CStringT
bir nesne. ve CThisSimpleString
hakkında CThisString
daha fazla bilgi için Açıklamalar bölümüne bakın.
varSrc
Bu CStringT
nesneye kopyalanacak bir değişken nesnesi.
BaseType
Dize sınıfının karakter türü. Aşağıdakilerden biri olabilir:
char
(ANSI karakter dizeleri için).
wchar_t
(Unicode karakter dizeleri için).
TCHAR
(hem ANSI hem de Unicode karakter dizeleri için).
bMFCDLL
Projenin bir MFC DLL () olup olmadığını (TRUE
)FALSE
belirten boole değeri.
SystemString
olmalıdır System::String
ve projenin ile /clr
derlenmiş olması gerekir.
pString
Bir nesnenin CStringT
tanıtıcısı.
Açıklamalar
Oluşturucular giriş verilerini yeni ayrılmış depolama alanına kopyaladığı için bellek özel durumları oluşabilir. Bu oluşturuculardan bazıları dönüştürme işlevi görür. Bu, örneğin LPTSTR
bir CStringT
nesnenin beklendiği yeri değiştirmenizi sağlar.
CStringT
(LPCSTR
lpsz
): ANSI dizesinden UnicodeCStringT
oluşturur. Aşağıdaki örnekte gösterildiği gibi bir dize kaynağını yüklemek için de bu oluşturucuyu kullanabilirsiniz.CStringT(
LPCWSTR
lpsz
): Unicode dizesinden birCStringT
oluşturur.CStringT
(const unsigned char*
psz
): bir işaretçiden öğesineunsigned char
oluşturmanızıCStringT
sağlar.
Not
_CSTRING_DISABLE_NARROW_WIDE_CONVERSION
ANSI ve Unicode dizeleri arasında örtük dize dönüştürmeyi kapatmak için makroyu tanımlayın. Makro, dönüştürmeyi destekleyen derleme oluşturucularından dışlar.
strSrc
Parametre bir CStringT
veya CThisSimpleString
nesnesi olabilir. için CStringT
, için varsayılan örneklemelerinden birini (CString
, CStringA
veya CStringW
); CThisSimpleString
kullanın, işaretçi this
kullanın. CThisSimpleString
sınıfından CSimpleStringT
daha az yerleşik işlevselliğe sahip daha küçük bir dize sınıfı olan sınıfın bir örneğini CStringT
bildirir.
aşırı yükleme işleci CSimpleStringT<>&()
bir bildirimden bir CStringT
CSimpleStringT
nesne oluşturur.
Not
Katıştırılmış null karakterler içeren örnekler oluşturmak CStringT
mümkün olsa da, buna karşı öneririz. Katıştırılmış null karakterler içeren nesnelerde CStringT
yöntemleri ve işleçleri çağırmak istenmeyen sonuçlar üretebilir.
Örnek
// 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
Nesneyi yok eder CStringT
.
~CStringT() throw();
Açıklamalar
Nesneyi yok eder CStringT
.
CStringT::Delete
Verilen dizindeki karakterle başlayan bir dizedeki karakteri veya karakterleri siler.
int Delete(int iIndex, int nCount = 1);
Parametreler
iIndex
Silinecek nesnedeki ilk karakterin CStringT
sıfır tabanlı dizini.
nCount
Kaldırılacak karakter sayısı.
Dönüş Değeri
Değiştirilen dizenin uzunluğu.
Açıklamalar
Dizeden uzunsa nCount
, dizenin geri kalanı kaldırılır.
Örnek
// 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
Bu dizede bir karakterin veya alt dizenin ilk eşleşmesini arar.
int Find(PCXSTR pszSub, int iStart=0) const throw();
int Find(XCHAR ch, int iStart=0) const throw();
Parametreler
pszSub
Aranacak bir alt dize.
iStart
Aramaya başlamak için dizedeki karakterin dizini veya baştan başlamak için 0.
ch
Aranacak tek bir karakter.
Dönüş Değeri
Bu CStringT
nesnedeki istenen alt dize veya karakterlerle eşleşen ilk karakterin sıfır tabanlı dizini; alt dize veya karakter bulunamazsa -1.
Açıklamalar
İşlev, hem tek karakterleri (çalışma zamanı işlevine strchr
benzer) hem de dizeleri (benzeri) kabul edecek şekilde aşırı yüklenmiştir strstr
.
Örnek
// 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
içinde bulunan herhangi bir karakterle eşleşen ilk karakter için bu dizeyi pszCharSet
arar.
int FindOneOf(PCXSTR pszCharSet) const throw();
Parametreler
pszCharSet
Eşleştirme için karakter içeren dize.
Dönüş Değeri
Bu dizedeki ilk karakterin sıfır pszCharSet
tabanlı dizini; eşleşme yoksa -1.
Açıklamalar
içindeki pszCharSet
karakterlerden herhangi birinin ilk oluşumunu bulur.
Örnek
// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;
CAtlString s(_T("abcdef"));
ASSERT(s.FindOneOf(_T("xd")) == 3); // 'd' is first match
CStringT::Format
Biçimlendirilmiş verileri, CStringT
verileri C stili bir karakter dizisine biçimlendiren sprintf_s
şekilde yazar.
void __cdecl Format(UINT nFormatID, [, argument]...);
void __cdecl Format(PCXSTR pszFormat, [, argument] ...);
Parametreler
nFormatID
Biçim denetimi dizesini içeren dize kaynak tanımlayıcısı.
pszFormat
Biçim denetimi dizesi.
argument
İsteğe bağlı bağımsız değişkenler.
Açıklamalar
Bu işlev, içinde bir dizi karakteri ve değeri biçimlendirip depolar CStringT
. İsteğe bağlı her bağımsız değişken (varsa) dönüştürülür ve tarafından nFormatID
tanımlanan dize kaynağında pszFormat
veya kaynağından ilgili biçim belirtimine göre çıkış yapılır.
Dize nesnesinin kendisi parametresi Format
olarak sunulursa çağrısı başarısız olur. Örneğin, aşağıdaki kod öngörülemeyen sonuçlara neden olur:
CAtlString str = _T("Some Data");
str.Format(_T("%s%d"), str, 123);
// Attention: str is also used in the parameter list.
Daha fazla bilgi için bkz . Biçim Belirtimi Sözdizimi: printf
ve wprintf
İşlevler.
Örnek
// 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
İleti dizesini biçimlendirin.
void __cdecl FormatMessage(UINT nFormatID, [, argument]...);
void __cdecl FormatMessage(PCXSTR pszFormat, [, argument]...);
Parametreler
nFormatID
Biçimlendirilmemiş ileti metnini içeren dize kaynak tanımlayıcısı.
pszFormat
Biçim denetimi dizesini gösterir. Ekler için taranır ve uygun şekilde biçimlendirilir. Biçim dizesi, parametrelerin rastgele bir sırada eklenmesine izin vermemesi dışında, çalışma zamanı işlevi printf
-stili biçim dizelerine benzer.
argument
İsteğe bağlı bağımsız değişkenler.
Açıklamalar
İşlev giriş olarak bir ileti tanımı gerektirir. İleti tanımı tarafından pszFormat
veya tarafından nFormatID
tanımlanan dize kaynağından belirlenir. İşlev, biçimlendirilmiş ileti metnini nesneye CStringT
kopyalar ve istenirse eklenmiş ekleme dizilerini işler.
Not
FormatMessage
yeni biçimlendirilmiş dize için sistem belleği ayırmaya çalışır. Bu girişim başarısız olursa, otomatik olarak bir bellek özel durumu oluşturulur.
Her eklemenin veya nFormatID
parametresinden pszFormat
sonra karşılık gelen bir parametresi olmalıdır. İleti metninin içinde, iletiyi dinamik olarak biçimlendirmek için çeşitli kaçış dizileri desteklenir. Daha fazla bilgi için bkz. Windows FormatMessage
SDK'sında Windows işlevi.
Örnek
// 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
Değişken bağımsız değişken listesi kullanarak ileti dizesini biçimlendirin.
void FormatMessageV(PCXSTR pszFormat, va_list* pArgList);
Parametreler
pszFormat
Biçim denetimi dizesini gösterir. Ekler için taranır ve uygun şekilde biçimlendirilir. Biçim dizesi, parametrelerin rastgele bir sırada eklenmesine izin vermemesi dışında, çalışma zamanı işlevi printf
-stili biçim dizelerine benzer.
pArgList
Bağımsız değişken listesinin işaretçisi.
Açıklamalar
İşlev, tarafından pszFormat
belirlenen giriş olarak bir ileti tanımı gerektirir. İşlev, biçimlendirilmiş ileti metnini ve değişken bir bağımsız değişken listesini nesnesine CStringT
kopyalar ve istenirse eklenmiş ekleme dizilerini işler.
Not
FormatMessageV
çağrıları CStringT::FormatMessage
, yeni biçimlendirilmiş dize için sistem belleği ayırmaya çalışır. Bu girişim başarısız olursa, otomatik olarak bir bellek özel durumu oluşturulur.
Daha fazla bilgi için bkz. Windows FormatMessage
SDK'sında Windows işlevi.
CStringT::FormatV
Değişken bağımsız değişken listesi kullanarak ileti dizesini biçimlendirin.
void FormatV(PCXSTR pszFormat, va_list args);
Parametreler
pszFormat
Biçim denetimi dizesini gösterir. Ekler için taranır ve uygun şekilde biçimlendirilir. Biçim dizesi, parametrelerin rastgele bir sırada eklenmesine izin vermemesi dışında, çalışma zamanı işlevi printf
-stili biçim dizelerine benzer.
args
Bağımsız değişken listesinin işaretçisi.
Açıklamalar
Biçimlendirilmiş bir dizeyi ve bağımsız değişkenlerin değişken listesini, verileri C stili bir karakter dizisine biçimlendirecek vsprintf_s
şekilde bir CStringT
dizeye yazar.
Örnek
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
Dizeyi belirtilen ortam değişkeninin değerine ayarlar.
BOOL GetEnvironmentVariable(PCXSTR pszVar);
Parametreler
pszVar
Ortam değişkenini belirten null ile sonlandırılan bir dizenin işaretçisi.
Dönüş Değeri
Başarılı olursa sıfır olmayan; aksi takdirde 0.
Açıklamalar
Belirtilen değişkenin değerini çağırma işleminin ortam bloğundan alır. Değer, null olarak sonlandırılan karakter dizesi biçimindedir.
Örnek
// 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
Dize içinde verilen dizine tek bir karakter veya alt dize ekler.
int Insert(int iIndex, PCXSTR psz);
int Insert(int iIndex, XCHAR ch);
Parametreler
iIndex
Eklemenin gerçekleşeceği karakterin dizini.
psz
Eklenecek alt dizeye yönelik bir işaretçi.
ch
Eklenecek karakter.
Dönüş Değeri
Değiştirilen dizenin uzunluğu.
Açıklamalar
parametresi, iIndex
karakter veya alt dizeye yer açmak için taşınacak ilk karakteri tanımlar. Sıfır ise nIndex
, ekleme tüm dizeden önce gerçekleşir. nIndex dizenin uzunluğundan yüksekse, işlev mevcut dizeyi ve veya psz
tarafından ch
sağlanan yeni malzemeyi birleştirir.
Örnek
// 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
Bu CStringT
nesneden en soldaki nCount
karakterleri ayıklar ve ayıklanan alt dizenin bir kopyasını döndürür.
CStringT Left(int nCount) const;
Parametreler
nCount
Bu CStringT
nesneden ayıklanan karakter sayısı.
Dönüş Değeri
CStringT
Belirtilen karakter aralığının kopyasını içeren nesne. Döndürülen CStringT
nesne boş olabilir.
Açıklamalar
Dize uzunluğunu aşarsa nCount
, dizenin tamamı ayıklanır. Left
Temel Left
işlevine benzer.
Çok baytlı karakter kümeleri (MBCS) nCount
için, her 8 bitlik diziyi bir karakter olarak kabul eder, böylece nCount
iki ile çarpılan çok baytlı karakter sayısını döndürür.
Örnek
// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;
CAtlString s(_T("abcdef"));
ASSERT(s.Left(2) == _T("ab"));
CStringT::LoadString
nID ile tanımlanan bir Windows dize kaynağını var olan CStringT
bir nesneye okur.
BOOL LoadString(HINSTANCE hInstance, UINT nID, WORD wLanguageID);
BOOL LoadString(HINSTANCE hInstance, UINT nID);
BOOL LoadString(UINT nID);
Parametreler
hInstance
Modülün örneğinin tanıtıcısı.
nID
Windows dizesi kaynak kimliği.
wLanguageID
Dize kaynağının dili.
Dönüş Değeri
Kaynak yükü başarılı olursa sıfır olmayan; aksi takdirde 0.
Açıklamalar
Belirtilen modülden (nID
) belirtilen dili () kullanarak dize kaynağını (hInstance
wLanguage
) yükler.
Örnek
// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;
CAtlString s;
s.LoadString(IDS_APP_TITLE);
CStringT::MakeLower
CStringT
Nesneyi küçük harfli bir dizeye dönüştürür.
CStringT& MakeLower();
Dönüş Değeri
Sonuçta elde edilen küçük harf dizesi.
Örnek
// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;
CAtlString s(_T("ABC"));
ASSERT(s.MakeLower() == _T("abc"));
CStringT::MakeReverse
Nesnedeki karakterlerin CStringT
sırasını tersine çevirir.
CStringT& MakeReverse();
Dönüş Değeri
Elde edilen ters çevrilmiş dize.
Örnek
// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;
CAtlString s(_T("abc"));
ASSERT(s.MakeReverse() == _T("cba"));
CStringT::MakeUpper
CStringT
Nesneyi büyük harfli bir dizeye dönüştürür.
CStringT& MakeUpper();
Dönüş Değeri
Sonuçta elde edilen büyük harf dizesi.
Açıklamalar
Örnek
// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;
CAtlString s(_T("abc"));
ASSERT(s.MakeUpper() == _T("ABC"));
CStringT::Mid
Konumdan iFirst
(sıfır tabanlı) başlayarak bu CStringT
nesneden uzunluk nCount
karakterlerinin alt dizesini ayıklar.
CStringT Mid(int iFirst, int nCount) const;
CStringT Mid(int iFirst) const;
Parametreler
iFirst
Ayıklanan alt dizeye dahil edilecek bu CStringT
nesnedeki ilk karakterin sıfır tabanlı dizini.
nCount
Bu CStringT
nesneden ayıklanan karakter sayısı. Bu parametre sağlanmamışsa, dizenin geri kalanı ayıklanır.
Dönüş Değeri
CStringT
Belirtilen karakter aralığının kopyasını içeren nesne. Döndürülen CStringT
nesne boş olabilir.
Açıklamalar
işlevi, ayıklanan alt dizenin bir kopyasını döndürür. Mid
Temel Orta işlevine benzer (Temel'deki dizinlerin tek tabanlı olması dışında).
Çok baytlı karakter kümeleri (MBCS) nCount
için her 8 bit karaktere başvurur; başka bir ifadeyle, çok baytlı bir karakterdeki bir baş ve sondaki bayt iki karakter olarak sayılır.
Örnek
// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;
CAtlString s(_T("abcdef"));
ASSERT(s.Mid(2, 3) == _T("cde"));
CStringT::OemToAnsi
Bu CStringT
nesnedeki tüm karakterleri OEM karakter kümesinden ANSI karakter kümesine dönüştürür.
void OemToAnsi();
Açıklamalar
Tanımlanmışsa _UNICODE
bu işlev kullanılamaz.
Örnek
örneğine CStringT::AnsiToOem
bakın.
CStringT::operator =
Dizeye yeni bir değer atar.
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);
Parametreler
strSrc
CStringT
Bu dizeye atanacak A.
str
Bir nesneye CThisSimpleString
başvuru.
bMFCDLL
Projenin bir MFC DLL olup olmadığını belirten boole değeri.
BaseType
Dize temel türü.
var
Bu dizeye atanacak değişken nesnesi.
ch
Dizeye atanacak ANSI veya Unicode karakteri.
pszSrc
Atanan özgün dizenin işaretçisi.
Açıklamalar
Atama işleci başka bir CStringT
nesneyi, karakter işaretçisini veya tek bir karakteri kabul eder. Yeni depolama alanı ayrılabildiğinden bu işleci her kullandığınızda bellek özel durumları oluşabilir.
hakkında CThisSimpleString
bilgi için, öğesinin Açıklamalar bölümüne CStringT::CStringT
bakın.
Not
Katıştırılmış null karakterler içeren örnekler oluşturmak CStringT
mümkün olsa da, buna karşı öneririz. Katıştırılmış null karakterler içeren nesnelerde CStringT
yöntemleri ve işleçleri çağırmak istenmeyen sonuçlar üretebilir.
CStringT::operator +
İki dizeyi veya bir karakter ile bir dizeyi birleştirir.
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,);
Parametreler
ch1
Bir dizeyle birleştirmek için ANSI veya Unicode karakteri.
ch2
Bir dizeyle birleştirmek için ANSI veya Unicode karakteri.
str1
Bir CStringT
dize veya karakterle birleştirmek için A.
str2
Bir CStringT
dize veya karakterle birleştirmek için A.
psz1
Bir dize veya karakterle birleştirmek için null olarak sonlandırılan bir dizeye işaretçi.
psz2
Dize veya karakterle birleştirmek için bir dize işaretçisi.
Açıklamalar
İşlevin CStringT::operator+
yedi aşırı yükleme biçimi vardır. İlk sürüm iki mevcut CStringT
nesneyi birleştirir. Sonraki ikisi bir CStringT
nesneyi ve null olarak sonlandırılan bir dizeyi birleştirir. Sonraki ikisi bir CStringT
nesneyi ve ANSI karakterini birleştirir. Son ikisi bir CStringT
nesneyi ve Unicode karakterini birleştirir.
Not
Katıştırılmış null karakterler içeren örnekler oluşturmak CStringT
mümkün olsa da, buna karşı öneririz. Katıştırılmış null karakterler içeren nesnelerde CStringT
yöntemleri ve işleçleri çağırmak istenmeyen sonuçlar üretebilir.
Örnek
// 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 +=
Karakterleri dizenin sonuna birleştirir.
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);
Parametreler
str
Bir nesneye CThisSimpleString
başvuru.
bMFCDLL
Projenin bir MFC DLL olup olmadığını belirten boole değeri.
BaseType
Dize temel türü.
var
Bu dizeyle birleştirmek için bir değişken nesnesi.
ch
Bir dizeyle birleştirmek için ANSI veya Unicode karakteri.
pszSrc
Birleştirilmekte olan özgün dizenin işaretçisi.
strSrc
Bu dizeyle birleştirmek için A CStringT
.
Açıklamalar
işleci başka bir CStringT
nesneyi, karakter işaretçisini veya tek bir karakteri kabul eder. Bu birleştirme işlecini her kullandığınızda bellek özel durumları oluşabilir çünkü bu CStringT
nesneye eklenen karakterler için yeni depolama alanı ayrılabilir.
hakkında CThisSimpleString
bilgi için, öğesinin Açıklamalar bölümüne CStringT::CStringT
bakın.
Not
Katıştırılmış null karakterler içeren örnekler oluşturmak CStringT
mümkün olsa da, buna karşı öneririz. Katıştırılmış null karakterler içeren nesnelerde CStringT
yöntemleri ve işleçleri çağırmak istenmeyen sonuçlar üretebilir.
Örnek
// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;
CAtlString s(_T("abc"));
ASSERT((s += _T("def")) == _T("abcdef"));
CStringT::operator ==
İki dizenin mantıksal olarak eşit olup olmadığını belirler.
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();
Parametreler
ch1
Karşılaştırma için ANSI veya Unicode karakteri.
ch2
Karşılaştırma için ANSI veya Unicode karakteri.
str1
Karşılaştırma için A CStringT
.
str2
Karşılaştırma için A CStringT
.
psz1
Karşılaştırma için null ile sonlandırılan dizeye yönelik bir işaretçi.
psz2
Karşılaştırma için null ile sonlandırılan dizeye yönelik bir işaretçi.
Açıklamalar
Sol taraftaki bir dizenin veya karakterin sağ taraftaki bir dizeye veya karaktere eşit olup olmadığını sınar ve döndürür TRUE
veya FALSE
buna göre.
Örnek
// 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 !=
İki dizenin mantıksal olarak eşit olup olmadığını belirler.
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();
Parametreler
ch1
Bir dizeyle birleştirmek için ANSI veya Unicode karakteri.
ch2
Bir dizeyle birleştirmek için ANSI veya Unicode karakteri.
str1
Karşılaştırma için A CStringT
.
str2
Karşılaştırma için A CStringT
.
psz1
Karşılaştırma için null ile sonlandırılan dizeye yönelik bir işaretçi.
psz2
Karşılaştırma için null ile sonlandırılan dizeye yönelik bir işaretçi.
Açıklamalar
Sol taraftaki bir dizenin veya karakterin sağ taraftaki bir dizeye veya karaktere eşit olup olmadığını sınar.
Örnek
// 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 <
İşlecin sol tarafındaki dizenin sağ taraftaki dizeden küçük olup olmadığını belirler.
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();
Parametreler
str1
Karşılaştırma için A CStringT
.
str2
Karşılaştırma için A CStringT
.
psz1
Karşılaştırma için null ile sonlandırılan dizeye yönelik bir işaretçi.
psz2
Karşılaştırma için null ile sonlandırılan dizeye yönelik bir işaretçi.
Açıklamalar
Dizeler arasında sözcük temelli bir karşılaştırma, şu kadar karakter karakter:
Karşılık gelen iki karakteri eşit olmayan bulur ve bunların karşılaştırmasının sonucu, dizeler arasındaki karşılaştırmanın sonucu olarak alınır.
Eşitsizlikleri bulmaz, ancak bir dize diğerinden daha fazla karaktere sahiptir ve daha kısa dize uzun dizeden daha az kabul edilir.
Eşitsizlikleri bulmaz ve dizelerin aynı sayıda karaktere sahip olduğunu ve dolayısıyla dizelerin eşit olduğunu bulur.
Örnek
// 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 >
İşlecin sol tarafındaki dizenin sağ taraftaki dizeden büyük olup olmadığını belirler.
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();
Parametreler
str1
Karşılaştırma için A CStringT
.
str2
Karşılaştırma için A CStringT
.
psz1
Karşılaştırma için null ile sonlandırılan dizeye yönelik bir işaretçi.
psz2
Karşılaştırma için null ile sonlandırılan dizeye yönelik bir işaretçi.
Açıklamalar
Dizeler arasında sözcük temelli bir karşılaştırma, şu kadar karakter karakter:
Karşılık gelen iki karakteri eşit olmayan bulur ve bunların karşılaştırmasının sonucu, dizeler arasındaki karşılaştırmanın sonucu olarak alınır.
Eşitsizlikleri bulmaz, ancak bir dize diğerinden daha fazla karaktere sahiptir ve daha kısa dize uzun dizeden daha az kabul edilir.
Eşitsizlikleri bulmaz ve dizelerin aynı sayıda karaktere sahip olduğunu, dolayısıyla dizelerin eşit olduğunu bulur.
Örnek
// 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 <=
İşlecin sol tarafındaki dizenin sağ taraftaki dizeden küçük veya buna eşit olup olmadığını belirler.
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();
Parametreler
str1
Karşılaştırma için A CStringT
.
str2
Karşılaştırma için A CStringT
.
psz1
Karşılaştırma için null ile sonlandırılan dizeye yönelik bir işaretçi.
psz2
Karşılaştırma için null ile sonlandırılan dizeye yönelik bir işaretçi.
Açıklamalar
Dizeler arasında sözcük temelli bir karşılaştırma, şu kadar karakter karakter:
Karşılık gelen iki karakteri eşit olmayan bulur ve bunların karşılaştırmasının sonucu, dizeler arasındaki karşılaştırmanın sonucu olarak alınır.
Eşitsizlikleri bulmaz, ancak bir dize diğerinden daha fazla karaktere sahiptir ve daha kısa dize uzun dizeden daha az kabul edilir.
Eşitsizlikleri bulmaz ve dizelerin aynı sayıda karaktere sahip olduğunu, dolayısıyla dizelerin eşit olduğunu bulur.
Örnek
// 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 >=
İşlecin sol tarafındaki dizenin sağ taraftaki dizeden büyük veya buna eşit olup olmadığını belirler.
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();
Parametreler
str1
Karşılaştırma için A CStringT
.
str2
Karşılaştırma için A CStringT
.
psz1
Karşılaştırma için bir dize işaretçisi.
psz2
Karşılaştırma için bir dize işaretçisi.
Açıklamalar
Dizeler arasında sözcük temelli bir karşılaştırma, şu kadar karakter karakter:
Karşılık gelen iki karakteri eşit olmayan bulur ve bunların karşılaştırmasının sonucu, dizeler arasındaki karşılaştırmanın sonucu olarak alınır.
Eşitsizlikleri bulmaz, ancak bir dize diğerinden daha fazla karaktere sahiptir ve daha kısa dize uzun dizeden daha az kabul edilir.
Eşitsizlikleri bulmaz ve dizelerin aynı sayıda karaktere sahip olduğunu, dolayısıyla dizelerin eşit olduğunu bulur.
Örnek
// 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
Belirtilen karakterin tüm örneklerini dizeden kaldırır.
int Remove(XCHAR chRemove);
Parametreler
chRemove
Bir dizeden kaldırılacak karakter.
Dönüş Değeri
Dizeden kaldırılan karakterlerin sayısı. Dize değiştirilmezse sıfır.
Açıklamalar
Karakter karşılaştırmaları büyük/küçük harfe duyarlıdır.
Örnek
// 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
öğesinin Replace
iki sürümü vardır. İlk sürüm, bir alt dizenin bir veya daha fazla kopyasını başka bir alt dize kullanarak değiştirir. Her iki alt dize de null olarak sonlandırılır. İkinci sürüm, bir karakterin bir veya daha fazla kopyasını başka bir karakter kullanarak değiştirir. Her iki sürüm de içinde CStringT
depolanan karakter verileri üzerinde çalışır.
int Replace(PCXSTR pszOld, PCXSTR pszNew);
int Replace(XCHAR chOld, XCHAR chNew);
Parametreler
pszOld
ile değiştirilecek null ile sonlandırılan dizeye işaret eden pszNew
bir işaretçi.
pszNew
yerine null olarak sonlandırılan bir dize işaretçisi pszOld
.
chOld
ile değiştirilecek chNew
karakter.
chNew
öğesinin yerini alan chOld
karakter.
Dönüş Değeri
Karakter veya alt dizenin değiştirilen örneklerinin sayısını veya dize değiştirilmediyse sıfırı döndürür.
Açıklamalar
Replace
dize uzunluğunu değiştirebilir çünkü pszNew
ve pszOld
aynı uzunlukta olması gerekmez ve eski alt dizenin birkaç kopyası yenisine değiştirilebilir. işlevi büyük/küçük harfe duyarlı bir eşleşme yapar.
Örneklere örnek olarak CStringT
CString
, CStringA
ve CStringW
verilebilir.
için CStringA
ANSI Replace
veya çok baytlı (MBCS) karakterlerle çalışır. Replace
için CStringW
geniş karakterlerle çalışır.
için CString
, aşağıdaki tablodaki sabitlerin tanımlanıp tanımlanmadığına bağlı olarak, derleme zamanında karakter veri türü seçilir.
Tanımlı Sabit | Karakter Veri Türü |
---|---|
_UNICODE |
Geniş karakterler |
_MBCS |
Çok baytlı karakterler |
Hiçbiri | Tek baytlı karakterler |
Her ikisi | Undefined |
Örnek
// 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
Bu CStringT
nesnede bir karakterin son eşleşmesini arar.
int ReverseFind(XCHAR ch) const throw();
Parametreler
ch
Aranacak karakter.
Dönüş Değeri
Bu CStringT
nesnedeki istenen karakterle eşleşen son karakterin sıfır tabanlı dizini veya karakter bulunamazsa -1.
Açıklamalar
işlevi, çalışma zamanı işlevine strrchr
benzer.
Örnek
// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;
CAtlString s(_T("abcabc"));
ASSERT(s.ReverseFind(_T('b')) == 4);
CStringT::Right
Bu CStringT
nesneden son (en sağdaki) nCount
karakterleri ayıklar ve ayıklanan alt dizenin bir kopyasını döndürür.
CStringT Right(int nCount) const;
Parametreler
nCount
Bu CStringT
nesneden ayıklanan karakter sayısı.
Dönüş Değeri
CStringT
Belirtilen karakter aralığının kopyasını içeren nesne. Döndürülen CStringT
nesne boş olabilir.
Açıklamalar
Dize uzunluğunu aşarsa nCount
, dizenin tamamı ayıklanır. Right
Temel Right
işlevine benzer (Temel'deki dizinlerin sıfır tabanlı olması dışında).
Çok baytlı karakter kümeleri için (MBCS
), nCount
her 8 bit karaktere başvurur; başka bir ifadeyle, çok baytlı bir karakterdeki bir baş ve sondaki bayt iki karakter olarak sayılır.
Örnek
// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;
CAtlString s(_T("abcdef"));
ASSERT(s.Right(2) == _T("ef"));
CStringT::SetSysString
İşaret edilen pbstr
öğesini BSTR
yeniden yerleştirir ve karakteri dahil olmak üzere NULL
nesnenin CStringT
içeriğini içine kopyalar.
BSTR SetSysString(BSTR* pbstr) const;
Parametreler
pbstr
Karakter dizesi işaretçisi.
Dönüş Değeri
Yeni dize.
Açıklamalar
nesnesinin içeriğine CStringT
bağlı olarak, tarafından pbstr
başvuruda bulunan BSTR
değerini değiştirebilirsiniz. İşlev, yetersiz bellek varsa bir CMemoryException
oluşturur.
Bu işlev normalde Otomasyon başvurusu tarafından geçirilen dizelerin değerini değiştirmek için kullanılır.
Örnek
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
tarafından tanımlanan pszCharSet
karakter kümesinde olmayan ilk karakterden başlayarak dizeden karakterleri ayıklar.
CStringT SpanExcluding(PCXSTR pszCharSet) const;
Parametreler
pszCharSet
Karakter kümesi olarak yorumlanan bir dize.
Dönüş Değeri
dizesinde bulunmayan, dizedeki ilk karakterden başlayıp aynı zamanda pszCharSet
içinde bulunan dizede bulunan ilk karakterle biten (yani, dizedeki ilk karakterden başlayıp bulunan pszCharSet
dizedeki ilk karakteri hariç tutarak) içinde olmayan pszCharSet
karakterler içeren bir alt dize. dizesinde hiçbir karakter pszCharSet
bulunamazsa dizenin tamamını döndürür.
Açıklamalar
SpanExcluding
bir karakterin ilk oluşumundan pszCharSet
önce gelen tüm karakterleri ayıklar ve döndürür (başka bir deyişle, pszCharSet
dizede karakteri ve onu izleyen tüm karakterler döndürülemez). Dizede karakteri pszCharSet
bulunamazsa, SpanExcluding
dizenin tamamını döndürür.
Örnek
// 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
tarafından tanımlanan pszCharSet
karakter kümesindeki ilk karakterden başlayarak dizedeki karakterleri ayıklar.
CStringT SpanIncluding(PCXSTR pszCharSet) const;
Parametreler
pszCharSet
Karakter kümesi olarak yorumlanan bir dize.
Dönüş Değeri
dizesindeki karakterleri içeren, dizedeki pszCharSet
ilk karakterden başlayıp içinde olmayan pszCharSet
dizede bir karakter bulunduğunda biten bir alt dize. SpanIncluding
dizedeki ilk karakter belirtilen kümede değilse boş bir alt dize döndürür.
Açıklamalar
Dizenin ilk karakteri karakter kümesinde değilse boş SpanIncluding
bir dize döndürür. Aksi takdirde, kümedeki ardışık karakter dizisini döndürür.
Örnek
// 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
Hedef dizede sonraki belirteci bulur
CStringT Tokenize(PCXSTR pszTokens, int& iStart) const;
Parametreler
pszTokens
Belirteç sınırlayıcıları içeren bir dize. Bu sınırlayıcıların sırası önemli değildir.
iStart
Aramaya başlamak için sıfır tabanlı dizin.
Dönüş Değeri
CStringT
Geçerli belirteç değerini içeren bir nesne.
Açıklamalar
İşlev, Tokenize
hedef dizede bir sonraki belirteci bulur. içindeki pszTokens
karakter kümesi, bulunabilecek belirtecin olası sınırlayıcılarını belirtir. İşleve Tokenize
yapılan her çağrı adresinden iStart
başlar, baştaki sınırlayıcıları atlar ve geçerli belirteci içeren bir CStringT
nesne döndürür. Bu, bir sonraki sınırlayıcı karaktere kadar olan karakter dizesidir. değeri iStart
bitiş sınırlayıcısı karakterini izleyen konum olarak veya dizenin sonuna ulaşıldıysa -1 olarak güncelleştirilir. Sonraki belirtecin okunacağı dizenin yerini izlemek için kullanarak iStart
hedef dizenin geri kalanından bir dizi çağrısıyla Tokenize
daha fazla belirteç ayrılabilir. Başka belirteç olmadığında işlev boş bir dize döndürür ve iStart
-1 olarak ayarlanır.
, , , wcstok_s
Tokenize
_wcstok_s_l
_mbstok_s_l
_strtok_s_l
_mbstok_s
gibi CRT belirteç işlevlerinden farklı olarak strtok_s
hedef dizeyi değiştirmez.
Örnek
// 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);
};
Bu örnekten alınan çıkış aşağıdaki gibidir:
Resulting Token: First
Resulting Token: Second
Resulting Token: Third
CStringT::Trim
Dizedeki baştaki ve sondaki karakterleri keser.
CStringT& Trim(XCHAR chTarget);
CStringT& Trim(PCXSTR pszTargets);
CStringT& Trim();
Parametreler
chTarget
Kırpılacak hedef karakter.
pszTargets
Kırpılacak hedef karakterleri içeren bir dize işaretçisi. içindeki pszTargets
karakterlerin baştaki ve sondaki tüm oluşumları nesneden CStringT
kırpılır.
Dönüş Değeri
Kırpılan dizeyi döndürür.
Açıklamalar
Aşağıdakilerden birinin tüm baştaki ve sondaki oluşumlarını kaldırır:
tarafından
chTarget
belirtilen karakter.tarafından
pszTargets
belirtilen dizede bulunan tüm karakterler.Boşluk.
Örnek
// 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
Bu örnekten alınan çıkış aşağıdaki gibidir:
Before: "******Soccer is best, but liquor is quicker!!!!!"
After : "Soccer is best, but liquor is quicker"
CStringT::TrimLeft
Dizedeki baştaki karakterleri kırpılır.
CStringT& TrimLeft(XCHAR chTarget);
CStringT& TrimLeft(PCXSTR pszTargets);
CStringT& TrimLeft();
Parametreler
chTarget
Kırpılacak hedef karakter.
pszTargets
Kırpılacak hedef karakterleri içeren bir dize işaretçisi. içindeki pszTargets
karakterlerin tüm baştaki oluşumları nesneden CStringT
kırpılır.
Dönüş Değeri
Sonuçta elde edilen kırpılan dize.
Açıklamalar
Aşağıdakilerden birinin tüm baştaki ve sondaki oluşumlarını kaldırır:
tarafından
chTarget
belirtilen karakter.tarafından
pszTargets
belirtilen dizede bulunan tüm karakterler.Boşluk.
Örnek
// 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
Dizedeki sondaki karakterleri kırpılır.
CStringT& TrimRight(XCHAR chTarget);
CStringT& TrimRight(PCXSTR pszTargets);
CStringT& TrimRight();
Parametreler
chTarget
Kırpılacak hedef karakter.
pszTargets
Kırpılacak hedef karakterleri içeren bir dize işaretçisi. içindeki pszTargets
karakterlerin sondaki tüm oluşumları nesneden CStringT
kırpılır.
Dönüş Değeri
CStringT
Kırpılan dizeyi içeren nesneyi döndürür.
Açıklamalar
Aşağıdakilerden birinin sondaki oluşumlarını kaldırır:
tarafından
chTarget
belirtilen karakter.tarafından
pszTargets
belirtilen dizede bulunan tüm karakterler.Boşluk.
Sürüm CStringT& TrimRight(XCHAR chTarget)
bir karakter parametresi kabul eder ve bu karakterin tüm kopyalarını dize verilerinin sonundan CStringT
kaldırır. Dizenin sonundan başlar ve öne doğru çalışır. Farklı bir karakter bulduğunda veya CStringT
karakter verisi bittiğinde durur.
Sürüm, CStringT& TrimRight(PCXSTR pszTargets)
aranacak tüm farklı karakterleri içeren null ile sonlandırılan bir dizeyi kabul eder. Nesnedeki CStringT
bu karakterlerin tüm kopyalarını kaldırır. Dizenin sonundan başlar ve öne doğru çalışır. Hedef dizede olmayan bir karakter bulduğunda veya CStringT
karakter verileri bittiğinde durur. Hedef dizenin tamamını sonundaki CStringT
bir alt dizeyle eşleştirmeye çalışmaz.
Sürüm CStringT& TrimRight()
için parametre gerekmez. Dizenin sonundaki boşluk karakterlerini kırpıyor CStringT
. Boşluk karakterleri satır sonları, boşluklar veya sekmeler olabilir.
Örnek
// 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
Ayrıca bkz.
Hiyerarşi Grafiği
ATL/MFC Paylaşılan Sınıfları
CSimpleStringT
Sınıf