Usar CString

En los temas de esta sección se describe cómo programar con CString. Para ver documentación de referencia de la clase CString, consulte la documentación de CStringT.

Para usar CString, incluya el encabezado atlstr.h.

Las clases CString, CStringA y CStringW son especializaciones de una plantilla de clase denominada CStringT que se basa en el tipo de datos de caracteres que admiten.

Un objeto CStringW contiene el tipo wchar_t y admite cadenas Unicode. Un objeto CStringA contiene el tipo char y admite cadenas de uno o varios bytes (MBCS). Un objeto CString admite el tipo char o el tipo wchar_t, dependiendo de si se han definido el símbolo de MBCA o el símbolo de UNICODE en el tiempo de compilación.

Un objeto CString conserva los datos de caracteres en un objeto CStringData. CString acepta cadenas de estilo C terminadas en NULL. CString realiza un seguimiento de la longitud de la cadena para mejorar el rendimiento, pero también conserva el carácter NULL de los datos de caracteres almacenados para admitir la conversión a LPCWSTR. CString incluye el terminador nulo cuando exporta una cadena de estilo C. Se puede insertar un elemento NULL en otras ubicaciones en un CString, pero esto podría generar resultados inesperados.

El siguiente conjunto de clases de cadena se puede usar sin vincular a una biblioteca MFC, tanto si hay o no compatibilidad de CRT: CAtlString, CAtlStringA y CAtlStringW.

CString se usa en objetos nativos. En los proyectos de código administrado (C++/CLI), use System::String.

Para agregar más capacidades de las que CString, CStringA o CStringW ofrecen actualmente, conviene crear una subclase de CStringT que contenga las características extra.

El siguiente código muestra cómo crear una CString e imprimirla en una salida estándar:

#include <atlstr.h>

int main() {
    CString aCString = CString(_T("A string"));
    _tprintf(_T("%s"), (LPCTSTR) aCString);
}

En esta sección

Operaciones básicas de CString
Se describen las operaciones básicas de CString, por ejemplo, cómo crear objetos a partir de cadenas literales de C, cómo acceder a caracteres individuales de una CString, cómo concatenar dos objetos y cómo comparar objetos CString.

Administración de datos de cadena
Se aborda el uso de Unicode y MBCS con CString.

Semántica de CString
Se explica el uso de objetos CString.

Operaciones de CString relacionadas con cadenas de estilo C
Se describe cómo manipular el contenido de un objeto CString como una cadena terminada en un valor nulo de estilo C.

Asignación y liberación de memoria para BSTR
Se explica el uso de memoria para BSTR y objetos COM.

Limpieza de excepciones de CString
Se explica que la limpieza expresa en MFC 3.0 y en versiones posteriores ya no es necesaria.

Paso de argumentos de CString
Se explica cómo pasar objetos CString a funciones y cómo devolver objetos CString de funciones.

Compatibilidad con Unicode y con el juego de caracteres multibyte (MBCS)
Se centra en cómo MFC permite el uso de Unicode y MBCS.

Referencia

CStringT
Contiene información de referencia sobre la clase CStringT.

CSimpleStringT (clase)
Contiene información de referencia sobre la clase CSimpleStringT.

Cadenas (ATL/MFC)
Contiene vínculos a temas en los que se describen las diversas formas de administrar datos de cadena.

Cadenas (ATL/MFC)