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