Aracılığıyla paylaş


Temel CString İşlemleri

Bu konuda aşağıdaki temel CString işlemleri açıklanmaktadır:

Class CString , sınıf şablonunu CStringTtemel alır. CString , 'nin bir typedef örneğidir CStringT. Tam olarak, CStringtypedefbir sınıf tanımlamak için bir sınıf şablonu kullanmanın yaygın bir yolu olan açık bir uzmanlığıdırCStringT. Benzer şekilde tanımlanmış sınıflar ve CStringAşeklindedirCStringW.

CString, CStringAve CStringW atlstr.h içinde tanımlanır. CStringT cstringt.h içinde tanımlanır.

CString, CStringAve CStringW her biri tarafından desteklenen dize verileriyle kullanılmak üzere tanımlanan CStringT yöntem ve işleçlerin bir kümesini alır. Yöntemlerden bazıları yinelenen ve bazı durumlarda C çalışma zamanı kitaplıklarının dize hizmetlerini aşıyor.

Not: CString yerel bir sınıftır. C++/CLI ile yönetilen bir projede kullanılacak dize sınıfı için kullanın System.String.

Standart C Değişmez Dizelerinden CString Nesneleri Oluşturma

C stili değişmez değer dizelerini, bir nesneyi başka bir CString nesneye atayabildiğiniz gibi bir öğesine de atayabilirsiniz CString .

  • Bir nesneye C değişmez değer dizesinin değerini atayın CString .

    CString myString = _T("This is a test");   
    
  • Birinin CString değerini başka bir CString nesneye atayın.

    CString oldString = _T("This is a test");
    CString newString = oldString;
    

    Bir nesne başka bir CString nesneye atandığında CString nesnenin içeriği kopyalanır. Bu nedenle, iki dize, dizeyi oluşturan gerçek karakterlere başvuruyu paylaşmaz. Nesneleri değer olarak kullanma CString hakkında daha fazla bilgi için bkz . CString Semantiği.

    Not

    Uygulamanızı Unicode veya ANSI için derlenecek şekilde yazmak için, _T makrosunu kullanarak sabit dizeleri kodlayın. Daha fazla bilgi için bkz . Unicode ve Çok Baytlı Karakter Kümesi (MBCS) Desteği.

CString'de Tek Tek Karakterlere Erişme

ve CString yöntemlerini kullanarak nesnedeki GetAt tek tek karakterlere SetAt erişebilirsiniz. Ayrıca, tek tek karakterleri almak için yerine GetAt dizi öğesini veya alt indis işlecini ( [ ] ) kullanabilirsiniz. (Bu, standart C stili dizelerde olduğu gibi dizine göre dizi öğelerine erişmeye benzer.) Karakterler için CString dizin değerleri sıfır tabanlıdır.

İki CString Nesnesini Birleştirme

İki CString nesneyi birleştirmek için birleştirme işleçlerini (+ veya +=) aşağıdaki gibi kullanın.

CString s1 = _T("This ");        // Cascading concatenation
s1 += _T("is a ");
CString s2 = _T("test");
CString message = s1 + _T("big ") + s2;  
// Message contains "This is a big test".

Birleştirme işleçlerinin (+ veya +=) en az bir CString bağımsız değişkeni nesne olmalıdır, ancak diğer bağımsız değişken için sabit bir karakter dizesi (örneğin, "big") veya char bir (örneğin, 'x') kullanabilirsiniz.

CString Nesnelerini Karşılaştırma

Compare yöntemi ve için CString == işleci eşdeğerdir. Compare, operator==ve CompareNoCase MBCS ve Unicode'a duyarlıdır; CompareNoCase aynı zamanda büyük/küçük harfe duyarlı değildir. Collate yöntemi CString yerel ayara duyarlıdır ve genellikle değerinden daha Compareyavaştır. Yalnızca geçerli yerel ayar tarafından belirtilen sıralama kurallarına uymanız gereken yerde kullanın Collate .

Aşağıdaki tabloda, kullanılabilir CString karşılaştırma işlevleri ve C çalışma zamanı kitaplığındaki eşdeğer Unicode/MBCS taşınabilir işlevleri gösterilmektedir.

CString işlevi MBCS işlevi Unicode işlevi
Compare _mbscmp wcscmp
CompareNoCase _mbsicmp _wcsicmp
Collate _mbscoll wcscoll

CStringT Sınıf şablonu tarafından <kullanılabilen ilişkisel işleçleri (<, >=, >=, CString, ==ve !=) tanımlar. Aşağıdaki örnekte gösterildiği gibi bu işleçleri kullanarak ikisini CStrings karşılaştırabilirsiniz.

CString s1(_T("Tom"));
CString s2(_T("Jerry"));
ASSERT(s2 < s1);

CString Nesnelerini Dönüştürme

CString nesnelerini diğer dize türlerine dönüştürme hakkında bilgi için bkz . Nasıl yapılır: Çeşitli Dize Türleri Arasında Dönüştürme.

Wcout ile CString kullanma

CString'i ile wcout kullanmak için aşağıdaki örnekte gösterildiği gibi nesnesini açıkça ' const wchar_t* a atamanız gerekir:

CString cs("meow");

wcout << (const wchar_t*) cs << endl;

Atama olmadan, cs olarak void* değerlendirilir ve wcout nesnenin adresini yazdırır. Bu davranış, şablon bağımsız değişkeni kesintisi ile kendi içinde doğru olan ve C++ standardına uygun aşırı yükleme çözümlemesi arasındaki ince etkileşimlerden kaynaklanır.

Ayrıca bkz.

Dizeler (ATL/MFC)
CStringT Sınıfı
Şablon Uzmanlığı
Nasıl yapılır: Çeşitli Dize Türleri Arasında Dönüştürme Yapma