Operazioni di base di CString

In questo argomento vengono descritte le seguenti operazioni di base CString :

  • Creando CString oggetti da stringhe standard di valore letterale c

  • Accedere ai singoli caratteri in un CString

  • Concatenare due oggetti di CString

  • Confrontare gli oggetti di CString

  • Per convertire oggetti di CString

Class CString è basato sul modello Classe di CStringTdella classe.CString è typedefCStringT.Più preciso, CString è typedefdi una specializzazione esplicitaCStringT, una tecnica comune utilizzare il modello di classe per definire la classe.Le classi analogamente definite vengono CStringA e CStringW.Per ulteriori informazioni sulla specializzazione esplicita, vedere Creazione di un'istanza del template di classe.

CString, CStringAe CStringW sono definiti in atlstr.h.CStringT è definito in cstringt.h.

CString, CStringAe CStringW ognuno ottiene un set di metodi degli operatori e definito da CStringT da utilizzare con i dati in formato stringa che supportano.Alcuni duplicati di metodi, e, supera in alcuni casi i servizi della stringa delle librerie di runtime del linguaggio C.

Nota: CString è una classe nativa.Per una classe string che serve nel progetto gestito ++/CLI c, utilizzare System.String.

Creare gli oggetti di CString da stringhe standard di valore letterale c

È possibile assegnare stringhe letterali di tipo C a CString come è possibile assegnare un oggetto CString a un altro.

  • Assegnare il valore della stringa letterale c a un oggetto CString.

    CString myString = _T("This is a test");   
    
  • Assegnare il valore di un CString a un altro oggetto CString.

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

    Il contenuto di un oggetto CString viene copiato quando un oggetto CString viene assegnato a un altro.Di conseguenza, le due stringhe non condividono un riferimento ai caratteri che costituiscono la stringa.Per ulteriori informazioni su come utilizzare gli oggetti CString come valori, vedere Semantica di CString.

    [!NOTA]

    Per scrivere l'applicazione in modo da consentirne la compilazione per Unicode o ANSI, stringhe letterali di codice utilizzando la macro di _T.Per ulteriori informazioni, vedere Supporto Unicode e con i set di caratteri multibyte (MBCS).

Accedere ai singoli caratteri in un CString

È possibile accedere ai singoli caratteri in un oggetto CString utilizzando i metodi SetAt e GetAt.È inoltre possibile utilizzare l'elemento della matrice, o pedice, l'operatore ( [ ] ) anziché GetAt per ottenere i singoli caratteri.(Si ricorda accedere agli elementi della matrice tramite l'indice, come nelle stringhe di tipo C standard.) i valori di indice per i caratteri CString sono in base zero.

Concatenare due oggetti di CString

Per concatenare due oggetti CString, utilizzare gli operatori di concatenazione (+ o +=), come segue.

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".

Almeno un argomento agli operatori di concatenazione (+ o +=) deve essere un oggetto CString, tuttavia è possibile utilizzare una stringa di caratteri costante, ad esempio "big") o char, ad esempio "x ") per l'altro argomento.

Confrontare gli oggetti di CString

Il metodo Compare e l'operatore di == per CString sono equivalenti.Compare, **operator==**e CompareNoCase sono MBCS e Unicode sviluppatori; CompareNoCase è anche senza distinzione tra maiuscole e minuscole.Il metodo CollateCString è riservato impostazioni locali e spesso è più lento Compare.Utilizzare Collate solo in cui è necessario attenerti alle regole di ordinamento specificate dalle impostazioni locali correnti.

Nella tabella seguente sono illustrate le funzioni di confronto disponibili CString e le funzioni dell'equivalente Unicode/MBCS-portable nella libreria di runtime del linguaggio C.

Funzione di CString

Funzione MBCS

Funzione Unicode

Compare

_mbscmp

wcscmp

CompareNoCase

_mbsicmp

_wcsicmp

Collate

_mbscoll

wcscoll

Il modello di classe CStringT definisce gli operatori relazionali (<, <=, >=, >, == e! =), disponibili per l'utilizzo CString.È possibile confrontare due CStrings utilizzando questi operatori, come illustrato nell'esempio seguente.

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

Per convertire oggetti di CString

Per informazioni sulla conversione degli oggetti di CString ad altri tipi di stringa, vedere Procedura: convertire vari tipi di stringhe.

Utilizzando CString con wcout

Per utilizzare un CString con wcout è necessario eseguire esplicitamente il cast dell'oggetto a const wchar_t* come illustrato nel seguente esempio:

CString cs("meow");
  wcout << (const wchar_t*) cs << endl;

Senza il cast, cs viene considerato void* e wcout stampa l'indirizzo dell'oggetto.Questo comportamento è causato dalle interazioni immediatamente evidenti tra la deduzione di argomento di modello e la risoluzione dell'overload che rappresentano direttamente corretti e allo standard C++.

Vedere anche

Riferimenti

Classe di CStringT

Creazione di un'istanza del template di classe

Specializzazione esplicita di un template di classe

Specializzazione parziale dei modelli di classe (C++)

Concetti

Procedura: convertire vari tipi di stringhe

Altre risorse

Stringhe (ATL/MFC)