Operaciones básicas CString

Este tema describe las operaciones básicas siguientes de CString :

  • Crear objetos CString de cadenas literales estándar de C

  • Caracteres individuales de un objeto CString

  • Concatenar dos objetos CString

  • Comparar objetos CString

  • Convertir los objetos CString

Class CString se basa en la plantilla Clase de CStringTde la clase.CString es typedef de CStringT.Más concretamente, CString es typedefde una especialización explícita de CStringT, que es una manera común de utilizar una plantilla de clase para definir una clase.Las clases de igual forma definido son CStringA y CStringW.Para obtener más información sobre la especialización explícita, vea Instancia de una plantilla de clase.

CString, CStringA, y CStringW se definen en atlstr.h.CStringT se define en cstringt.h.

CString, CStringA, y CStringW cada obtienen un conjunto de los métodos y operadores definidos por CStringT con datos de cadena que admiten.Parte del duplicado de métodos y, supera en algunos casos los servicios de la cadena de las bibliotecas en tiempo de ejecución de C.

Nota: CString es una clase nativa.Para una clase de la cadena que está para el uso en proyecto administrado de C/C++., puede utilizar System.String.

Crear objetos CString de cadenas literales estándar de C

Puede asignar cadenas literales de C a CString igual que puede asignar un objeto de CString a otro.

  • Asigne el valor de la cadena literal de C/C++. a un objeto de CString .

    CString myString = _T("This is a test");   
    
  • Asigne el valor de un CString a otro objeto de CString .

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

    El contenido de un objeto de CString se copian cuando un objeto de CString está asignado a otro.Por lo tanto, las dos cadenas no comparten una referencia a caracteres reales que constituyen la cadena.Para obtener más información sobre cómo utilizar los objetos de CString como valores, vea Semántica de CString.

    [!NOTA]

    Para escribir la aplicación para que se pueda compilar para Unicode o para ANSI, cadenas literales de código mediante la macro de _T.Para obtener más información, vea Unicode y compatibilidad con juegos de caracteres multibyte (MBCS).

Caracteres individuales de un objeto CString

Puede tener acceso a los caracteres individuales de un objeto de CString mediante los métodos de GetAt y de SetAt .También puede utilizar el elemento de matriz, o subíndice, operador ( [ ] ) en lugar de GetAt para obtener los caracteres individuales.(Esto es similar a los elementos de una matriz de acceso al lado del índice, como en cadenas estándar de C.) Los valores de índice por caracteres de CString cero-se basan.

Concatenar dos objetos CString

Para concatenar dos objetos de CString , utilice los operadores de concatenación (+ o +=), como sigue.

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

Al menos un argumento operadores de concatenación (+ o +=) debe ser un objeto de CString , pero puede utilizar una cadena de caracteres constante (por ejemplo, "big") o char (por ejemplo, “x ") para el otro argumento.

Comparar objetos CString

El método de Compare y el operador == para CString son equivalentes.Compare, operator==, y CompareNoCase son MBCS y Unicode corriente; CompareNoCase también es sin distinción entre mayúsculas y minúsculas.El método de Collate de CString es configuración regional- sensible y suele ser más lento que Compare.Utilice Collate sólo cuando debe seguir las reglas de ordenación según lo especificado por la configuración regional actual.

La tabla siguiente muestra las funciones disponibles y su equivalente Unicode/MBCS-portable de comparación de CString funciones de la biblioteca en tiempo de ejecución de C.

Función CString

Función MBCS

Función Unicode

Compare

_mbscmp

wcscmp

CompareNoCase

_mbsicmp

_wcsicmp

Collate

_mbscoll

wcscoll

En la plantilla de clase de CStringT define los operadores relacionales (<, <=, >=, >, ==, y! =), que están disponibles para uso de CString.Puede comparar dos CStrings mediante estos operadores, como se muestra en el ejemplo siguiente.

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

Convertir los objetos CString

Para obtener información sobre cómo convertir objetos CString a otros tipos de cadena, vea Cómo: Convertir entre distintos tipos de cadenas.

Mediante CString con el wcout

Para utilizar un objeto CString con wcout debe convertir explícitamente el objeto a const wchar_t* tal y como se muestra en el ejemplo siguiente:

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

Sin la conversión, se trata cs mientras void* y wcout imprime la dirección del objeto.Este comportamiento es provocado por las interacciones sutiles entre la deducción de argumento de plantilla y la resolución de sobrecarga que están en ellos mismos correctos y compatibles con el estándar de C++.

Vea también

Referencia

Clase de CStringT

Instancia de una plantilla de clase

Specialization explícita de las plantillas de clase

Specialization parcial de plantillas de clase (C++)

Conceptos

Cómo: Convertir entre distintos tipos de cadenas

Otros recursos

Cadenas (y MFC)