Partager via


Opérations de base de CString

Cette rubrique décrit les opérations de base de CString suivantes :

  • Créer des objets de CString des chaînes littérales C standard

  • Différents caractères d'accès dans un CString

  • Concaténer deux objets de CString

  • Comparer des objets de CString

  • Convertir les objets de CString

Class CString est basé sur le modèle de classe Classe de CStringT.CString est typedef d' CStringT.Plus précisément, CString est typedefd'une spécialisation explicite d' CStringT, qui est un moyen courant d'utiliser un modèle de classe pour définir une classe.Les classes de même sont définies CStringA et CStringW.Pour plus d'informations sur la spécialisation explicite, consultez Instanciation du modèle de classe.

CString, CStringA, et CStringW sont définis dans atlstr.h.CStringT est défini dans cstringt.h.

CString, CStringA, et CStringW chaque obtenir un ensemble de méthodes et les opérateurs définis par CStringT à utiliser avec les données de chaîne qu'ils prennent en charge.Une partie du double de méthodes et, dans certains cas, surpasse les services de chaîne des bibliothèques runtime C.

Remarque : CString est une classe native.Pour une classe de chaîne qui est à utiliser dans le projet géré par ++/CLI c, utilisez System.String.

Créer des objets de CString des chaînes littérales C standard

Vous pouvez assigner des chaînes littérales de style C à CString de même que vous pouvez assigner un objet d' CString à un autre.

  • Assignez la valeur de la chaîne littérale c à un objet d' CString .

    CString myString = _T("This is a test");   
    
  • Assignez la valeur d'un CString à un autre objet d' CString .

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

    Le contenu d'un objet d' CString est copié lorsqu'un objet d' CString est assigné à un autre.Par conséquent, les deux chaînes ne partagent pas une référence aux caractères réels qui composent la chaîne.Pour plus d'informations sur l'utilisation des objets d' CString comme valeurs, consultez Sémantique de CString.

    [!REMARQUE]

    Pour écrire votre application afin qu'elle puisse être compilée pour Unicode ou pour ANSI, chaînes littérales de code à l'aide de la macro de _T.Pour plus d'informations, consultez Unicode et prise en charge du jeu de caractères multioctets (MBCS).

Différents caractères d'accès dans un CString

Vous pouvez accéder aux différents caractères d'un objet d' CString à l'aide de les méthodes d' GetAt et d' SetAt .Vous pouvez également utiliser l'élément de tableau, ou indice, opérateur ([]) au lieu d' GetAt pour obtenir des caractères.(Cela ressemble aux éléments de tableau à accéder par index, comme dans les chaînes de style C standard.) Les valeurs d'index des caractères d' CString sont de base zéro.

Concaténer deux objets de CString

Pour concaténer deux objets d' CString , utilisez les opérateurs de concaténation (+ ou +), comme suit.

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

Au moins un argument aux opérateurs de concaténation (+ ou +) doit être un objet d' CString , mais vous pouvez utiliser une chaîne constante (par exemple, "big") ou un char (par exemple, « x ") pour l'autre argument.

Comparer des objets de CString

La méthode d' Compare et l'opérateur de == pour CString sont identiques.Compare, operator==, et CompareNoCase sont MBCS et Unicode avertis ; CompareNoCase est également la casse.La méthode d' Collate d' CString est sensible aux paramètres régionaux et est souvent plus lent qu' Compare.Utilisez Collate uniquement lorsque vous devez respecter les règles de tri comme spécifié par les paramètres régionaux.

Le tableau suivant montre les fonctions de comparaison disponibles de CString et leur équivalent Unicode/MBCS-portable fonctions de la bibliothèque Runtime C.

Fonction de CString

Fonctions MBCS

Fonction Unicode

Compare

_mbscmp

wcscmp

CompareNoCase

_mbsicmp

_wcsicmp

Collate

_mbscoll

wcscoll

Le modèle de classe d' CStringT définit les opérateurs relationnels (<, <=, >=, >, ==, et ! =), qui sont disponibles pour une utilisation par d' CString.Vous pouvez comparer deux CStrings à l'aide de ces opérateurs, comme indiqué dans l'exemple suivant.

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

Convertir les objets de CString

Pour plus d'informations sur la conversion des objets de CString à d'autres types de chaînes, consultez Comment : effectuer une conversion entre différents types de chaînes.

À l'aide de CString avec le wcout

Pour utiliser un CString avec wcout vous devez caster explicitement l'objet à const wchar_t* comme indiqué dans l'exemple suivant :

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

Sans cast, cs est traité comme void* et wcout imprime l'adresse de l'objet.Ce comportement est provoqué par les interactions subtiles entre la déduction d'arguments template et la résolution de surcharge qui sont dans elles-mêmes corrects et conforme à la norme C++.

Voir aussi

Référence

Classe de CStringT

Instanciation du modèle de classe

Spécialisation explicite des modèles de classe

Spécialisation partielle des modèles de classe (C++)

Concepts

Comment : effectuer une conversion entre différents types de chaînes

Autres ressources

ATL/MFC chaînes ()