Clase CStringTCStringT Class

Esta clase representa un CStringT objeto.This class represents a CStringT object.

SintaxisSyntax

template<typename BaseType, class StringTraits>
class CStringT :
    public CSimpleStringT<BaseType,
        _CSTRING_IMPL_::_MFCDLLTraitsCheck<BaseType, StringTraits>::c_bIsMFCDLLTraits>

ParámetrosParameters

BaseType
Tipo de carácter de la clase String.The character type of the string class. Puede ser uno de los siguientes:Can be one of the following:

  • char (para cadenas de caracteres ANSI).char (for ANSI character strings).

  • wchar_t (para cadenas de caracteres Unicode).wchar_t (for Unicode character strings).

  • TCHAR (para cadenas de caracteres ANSI y Unicode).TCHAR (for both ANSI and Unicode character strings).

StringTraits
Determina si la clase de cadena necesita compatibilidad con la biblioteca de C Run-Time (CRT) y dónde se encuentran los recursos de cadena.Determines if the string class needs C Run-Time (CRT) Library support and where string resources are located. Puede ser uno de los siguientes:Can be one of the following:

  • StrTraitATL<wchar_t | char | TCHAR, ChTraitsCRT<wchar_t | char | TCHAR>>

    La clase requiere compatibilidad con CRT y busca cadenas de recursos en el módulo especificado por m_hInstResource (un miembro de la clase de módulo de la aplicación).The class requires CRT support and searches for resource strings in the module specified by m_hInstResource (a member of the application's module class).

  • StrTraitATL<wchar_t | char | TCHAR, ChTraitsOS<wchar_t | char |TCHAR>>

    La clase no requiere compatibilidad con CRT y busca cadenas de recursos en el módulo especificado por m_hInstResource (un miembro de la clase de módulo de la aplicación).The class doesn't require CRT support and searches for resource strings in the module specified by m_hInstResource (a member of the application's module class).

  • StrTraitMFC<wchar_t | char | TCHAR, ChTraitsCRT<wchar_t | char | TCHAR>>

    La clase requiere compatibilidad con CRT y busca cadenas de recursos mediante el algoritmo de búsqueda de MFC estándar.The class requires CRT support and searches for resource strings using the standard MFC search algorithm.

  • StrTraitMFC<wchar_t | char | TCHAR, ChTraitsOS<wchar_t | char | TCHAR>>

    La clase no requiere compatibilidad con CRT y busca cadenas de recursos mediante el algoritmo de búsqueda de MFC estándar.The class doesn't require CRT support and searches for resource strings using the standard MFC search algorithm.

MiembrosMembers

Constructores públicosPublic Constructors

NOMBREName DescripciónDescription
CStringT::CStringT Construye un CStringT objeto de varias maneras.Constructs a CStringT object in various ways.
CStringT::~CStringT Destruye un CStringT objeto.Destroys a CStringT object.

Métodos públicosPublic Methods

NOMBREName DescripciónDescription
CStringT::AllocSysString Asigna un a BSTR partir de CStringT datos.Allocates a BSTR from CStringT data.
CStringT::AnsiToOem Realiza una conversión en contexto del juego de caracteres ANSI al Juego de caracteres OEM.Makes an in-place conversion from the ANSI character set to the OEM character set.
CStringT::AppendFormat Anexa datos con formato a un CStringT objeto existente.Appends formatted data to an existing CStringT object.
CStringT::Collate Compara dos cadenas (con distinción de mayúsculas y minúsculas, usa información específica de la configuración regional).Compares two strings (case-sensitive, uses locale-specific information).
CStringT::CollateNoCase Compara dos cadenas (sin distinción de mayúsculas y minúsculas, utiliza información específica de la configuración regional).Compares two strings (case-insensitive, uses locale-specific information).
CStringT::Compare Compara dos cadenas (con distinción de mayúsculas y minúsculas).Compares two strings (case-sensitive).
CStringT::CompareNoCase Compara dos cadenas (sin distinción de mayúsculas y minúsculas).Compares two strings (case-insensitive).
CStringT::Delete Elimina un carácter o caracteres de una cadena.Deletes a character or characters from a string.
CStringT::Find Busca un carácter o subcadena dentro de una cadena más grande.Finds a character or substring inside a larger string.
CStringT::FindOneOf Busca el primer carácter coincidente de un conjunto.Finds the first matching character from a set.
CStringT::Format Da formato a la cadena como sprintf hace.Formats the string as sprintf does.
CStringT::FormatMessage Da formato a una cadena de mensaje.Formats a message string.
CStringT::FormatMessageV Da formato a una cadena de mensaje mediante una lista de argumentos de variable.Formats a message string using a variable argument list.
CStringT::FormatV Da formato a la cadena mediante una lista variable de argumentos.Formats the string using a variable list of arguments.
CStringT::GetEnvironmentVariable Establece la cadena en el valor de la variable de entorno especificada.Sets the string to the value of the specified environment variable.
CStringT::Insert Inserta un carácter individual o una subcadena en el índice especificado de la cadena.Inserts a single character or a substring at the given index within the string.
CStringT::Left Extrae la parte izquierda de una cadena.Extracts the left part of a string.
CStringT::LoadString Carga un CStringT objeto existente de un recurso de Windows.Loads an existing CStringT object from a Windows resource.
CStringT::MakeLower Convierte todos los caracteres de esta cadena en caracteres en minúsculas.Converts all the characters in this string to lowercase characters.
CStringT::MakeReverse Invierte la cadena.Reverses the string.
CStringT::MakeUpper Convierte todos los caracteres de esta cadena en caracteres en mayúsculas.Converts all the characters in this string to uppercase characters.
CStringT::Mid Extrae la parte central de una cadena.Extracts the middle part of a string.
CStringT::OemToAnsi Realiza una conversión en contexto del juego de caracteres OEM en el juego de caracteres ANSI.Makes an in-place conversion from the OEM character set to the ANSI character set.
CStringT::Remove Quita los caracteres indicados de una cadena.Removes indicated characters from a string.
CStringT::Replace Reemplaza los caracteres indicados por otros caracteres.Replaces indicated characters with other characters.
CStringT::ReverseFind Busca un carácter dentro de una cadena más grande; comienza desde el final.Finds a character inside a larger string; starts from the end.
CStringT::Right Extrae la parte derecha de una cadena.Extracts the right part of a string.
CStringT::SetSysString Establece un BSTR objeto existente con datos de un CStringT objeto.Sets an existing BSTR object with data from a CStringT object.
CStringT::SpanExcluding Extrae los caracteres de la cadena, empezando por el primer carácter, que no están en el conjunto de caracteres identificados por pszCharSet .Extracts characters from the string, starting with the first character, that aren't in the set of characters identified by pszCharSet.
CStringT::SpanIncluding Extrae una subcadena que contiene solo los caracteres de un conjunto.Extracts a substring that contains only the characters in a set.
CStringT::Tokenize Extrae los tokens especificados en una cadena de destino.Extracts specified tokens in a target string.
CStringT::Trim Recorta todos los caracteres de espacio en blanco iniciales y finales de la cadena.Trims all leading and trailing whitespace characters from the string.
CStringT::TrimLeft Recorta los caracteres de espacio en blanco iniciales de la cadena.Trims leading whitespace characters from the string.
CStringT::TrimRight Recorta los caracteres de espacio en blanco finales de la cadena.Trims trailing whitespace characters from the string.

OperadoresOperators

NombreName DescripciónDescription
CStringT::operator = Asigna un nuevo valor a un CStringT objeto.Assigns a new value to a CStringT object.
CStringT::operator + Concatena dos cadenas, o un carácter y una cadena.Concatenates two strings, or a character and a string.
CStringT::operator += Concatena una nueva cadena al final de una cadena existente.Concatenates a new string to the end of an existing string.
CStringT::operator == Determina si dos cadenas son lógicamente iguales.Determines if two strings are logically equal.
CStringT::operator != Determina si dos cadenas no son lógicamente iguales.Determines if two strings aren't logically equal.
CStringT::operator < Determina si la cadena del lado izquierdo del operador es menor que la cadena del lado derecho.Determines if the string on the left side of the operator is less than to the string on the right side.
CStringT::operator > Determina si la cadena del lado izquierdo del operador es mayor que la cadena del lado derecho.Determines if the string on the left side of the operator is greater than to the string on the right side.
CStringT::operator <= Determina si la cadena del lado izquierdo del operador es menor o igual que la cadena del lado derecho.Determines if the string on the left side of the operator is less than or equal to the string on the right side.
CStringT::operator >= Determina si la cadena del lado izquierdo del operador es mayor o igual que la cadena del lado derecho.Determines if the string on the left side of the operator is greater than or equal to the string on the right side.

ComentariosRemarks

CStringT hereda de la clase CSimpleStringT.CStringT inherits from CSimpleStringT Class. Implementa las características avanzadas, como la manipulación de caracteres, la ordenación y la búsqueda CStringT .Advanced features, such as character manipulation, ordering, and searching, are implemented by CStringT.

Nota

CStringT los objetos pueden producir excepciones.CStringT objects are capable of throwing exceptions. Esto se produce cuando un CStringT objeto se queda sin memoria por cualquier motivo.This occurs when a CStringT object runs out of memory for any reason.

Un CStringT objeto consta de una secuencia de caracteres de longitud variable.A CStringT object consists of a variable-length sequence of characters. CStringT proporciona funciones y operadores con una sintaxis similar a la de Basic.CStringT provides functions and operators using syntax similar to that of Basic. Los operadores de concatenación y comparación, junto con la administración de memoria simplificada, facilitan el CStringT uso de los objetos que las matrices de caracteres normales.Concatenation and comparison operators, together with simplified memory management, make CStringT objects easier to use than ordinary character arrays.

Nota

Aunque es posible crear CStringT instancias de que contengan caracteres nulos incrustados, se recomienda que lo permitan.Although it is possible to create CStringT instances that contain embedded null characters, we recommend against it. Llamar a métodos y operadores en CStringT objetos que contengan caracteres nulos incrustados puede producir resultados imprevistos.Calling methods and operators on CStringT objects that contain embedded null characters can produce unintended results.

Mediante el uso de diferentes combinaciones de los BaseType parámetros y, los objetos pueden encontrarse StringTraits CStringT en los siguientes tipos, que se han predefinido por las bibliotecas ATL.By using different combinations of the BaseType and StringTraits parameters, CStringT objects can come in the following types, which have been predefined by the ATL libraries.

Si se usa en una aplicación ATL:If using in an ATL application:

CString, CStringA y CStringW se exportan desde el archivo dll de MFC (MFC90.DLL), nunca desde archivos dll de usuario.CString, CStringA, and CStringW are exported from the MFC DLL (MFC90.DLL), never from user DLLs. Esto se hace para evitar CStringT que se defina varias veces.This is done to prevent CStringT from being defined multiple times.

Nota

Si el código contiene la solución alternativa para los errores del vinculador que se describe en exportación de clases de cadena mediante CStringT, debe quitar ese código.If your code contains the workaround for linker errors that is described in Exporting String Classes Using CStringT, you should remove that code. Ya no es necesario.It is no longer needed.

Los siguientes tipos de cadena están disponibles en las aplicaciones basadas en MFC:The following string types are available within MFC-based applications:

CStringT (tipo)CStringT type DeclaraciónDeclaration
CStringA Cadena de tipo de carácter ANSI compatible con CRT.An ANSI character type string with CRT support.
CStringW Cadena de tipo de carácter Unicode compatible con CRT.A Unicode character type string with CRT support.
CString Tipos de caracteres ANSI y Unicode compatibles con CRT.Both ANSI and Unicode character types with CRT support.

Los siguientes tipos de cadena están disponibles en los proyectos donde ATL_CSTRING_NO_CRT se define:The following string types are available in projects where ATL_CSTRING_NO_CRT is defined:

CStringT (tipo)CStringT type DeclaraciónDeclaration
CAtlStringA Cadena de tipo de carácter ANSI sin compatibilidad con CRT.An ANSI character type string without CRT support.
CAtlStringW Cadena de tipo de carácter Unicode sin compatibilidad con CRT.A Unicode character type string without CRT support.
CAtlString Tipos de caracteres ANSI y Unicode sin compatibilidad con CRT.Both ANSI and Unicode character types without CRT support.

Los siguientes tipos de cadena están disponibles en los proyectos en los que ATL_CSTRING_NO_CRT no está definido:The following string types are available in projects where ATL_CSTRING_NO_CRT isn't defined:

CStringT (tipo)CStringT type DeclaraciónDeclaration
CAtlStringA Cadena de tipo de carácter ANSI compatible con CRT.An ANSI character type string with CRT support.
CAtlStringW Cadena de tipo de carácter Unicode compatible con CRT.A Unicode character type string with CRT support.
CAtlString Tipos de caracteres ANSI y Unicode compatibles con CRT.Both ANSI and Unicode character types with CRT support.

CString los objetos también tienen las siguientes características:CString objects also have the following characteristics:

  • CStringT los objetos pueden crecer debido a las operaciones de concatenación.CStringT objects can grow because of concatenation operations.

  • CStringT los objetos siguen "semántica de valores".CStringT objects follow "value semantics." Piense en un CStringT objeto como una cadena real, no como un puntero a una cadena.Think of a CStringT object as an actual string, not as a pointer to a string.

  • Puede sustituir objetos libremente CStringT por PCXSTR argumentos de función.You can freely substitute CStringT objects for PCXSTR function arguments.

  • Administración de memoria personalizada para búferes de cadena.Custom memory management for string buffers. Para obtener más información, vea Administración de memoria y CStringT.For more information, see Memory Management and CStringT.

Tipos predefinidos de CStringTCStringT Predefined Types

Dado CStringT que utiliza un argumento de plantilla para definir el tipo de carácter ( wchar_t o Char) admitido, los tipos de parámetro de método pueden ser complicados en ocasiones.Because CStringT uses a template argument to define the character type (either wchar_t or char) supported, method parameter types can be complicated at times. Para simplificar este problema, se define un conjunto de tipos predefinidos y se utiliza en toda la CStringT clase.To simplify this issue, a set of predefined types is defined and used throughout the CStringT class. En la tabla siguiente se enumeran los distintos tipos:The following table lists the various types:

NombreName DescripciónDescription
XCHAR Un único carácter ( wchar_t o char ) con el mismo tipo de carácter que el CStringT objeto.A single character (either wchar_t or char) with the same character type as the CStringT object.
YCHAR Un único carácter ( wchar_t o char ) con el tipo de carácter opuesto como el CStringT objeto.A single character (either wchar_t or char) with the opposite character type as the CStringT object.
PXSTR Un puntero a una cadena de caracteres ( wchar_t o char ) con el mismo tipo de carácter que el objeto * * * * * * * * CStringT .A pointer to a character string (either wchar_t or char) with the same character type as the ****CStringT**** object.
PYSTR Un puntero a una cadena de caracteres ( wchar_t o char ) con el tipo de carácter opuesto como el CStringT objeto.A pointer to a character string (either wchar_t or char) with the opposite character type as the CStringT object.
PCXSTR Un puntero a una const cadena de caracteres ( wchar_t o char ) con el mismo tipo de carácter que el CStringT objeto.A pointer to a const character string (either wchar_t or char) with the same character type as the CStringT object.
PCYSTR Un puntero a una const cadena de caracteres ( wchar_t o char ) con el tipo de carácter opuesto como el CStringT objeto.A pointer to a const character string (either wchar_t or char) with the opposite character type as the CStringT object.

Nota

El código que usaba previamente métodos no documentados de CString (como AssignCopy ) debe reemplazarse por código que utiliza los siguientes métodos documentados CStringT de (como GetBuffer o ReleaseBuffer ).Code that previously used undocumented methods of CString (such as AssignCopy) must be replaced with code that uses the following documented methods of CStringT (such as GetBuffer or ReleaseBuffer). Estos métodos se heredan de CSimpleStringT .These methods are inherited from CSimpleStringT.

Jerarquía de herenciaInheritance Hierarchy

CSimpleStringTCSimpleStringT

CStringT

RequisitosRequirements

EncabezadoHeader Se usa paraUse for
CStringT. hcstringt.h Objetos de cadena solo de MFCMFC-only string objects
atlstr. hatlstr.h Objetos de cadena que no son de MFCNon-MFC string objects

CStringT::AllocSysStringCStringT::AllocSysString

Asigna una cadena compatible con Automation del tipo BSTR y copia en ella el contenido del CStringT objeto, incluido el carácter nulo de terminación.Allocates an Automation-compatible string of the type BSTR and copies the contents of the CStringT object into it, including the terminating null character.

BSTR AllocSysString() const;

Valor devueltoReturn Value

Cadena recién asignada.The newly allocated string.

ComentariosRemarks

En los programas MFC, se produce una clase CMemoryException si no hay suficiente memoria.In MFC programs, a CMemoryException Class is thrown if insufficient memory exists. En los programas ATL, se produce una CAtlException .In ATL programs, a CAtlException is thrown. Esta función se utiliza normalmente para devolver cadenas para la automatización.This function is normally used to return strings for Automation.

Normalmente, si esta cadena se pasa a una función COM como [in] parámetro, esto requiere que el autor de la llamada libere la cadena.Commonly, if this string is passed to a COM function as an [in] parameter, then this requires the caller to free the string. Esto se puede hacer utilizando SysFreeString, tal como se describe en el Windows SDK.This can be done by using SysFreeString, as described in the Windows SDK. Para obtener más información, vea asignar y liberar memoria para un BSTR.For more information, see Allocating and Releasing Memory for a BSTR.

Para obtener más información sobre las funciones de asignación OLE en Windows, vea SysAllocString en el Windows SDK.For more information about OLE allocation functions in Windows, see SysAllocString in the Windows SDK.

EjemploExample

El siguiente ejemplo muestra el uso de CStringT::AllocSysString.The following example demonstrates the use of CStringT::AllocSysString.

// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;
CAtlString str(_T("This is a test string!"));
BSTR bstr = str.AllocSysString();

// bstr now contains "This is a test string!", and can be
// passed to any OLE function requiring a BSTR.
// Normally, if you pass the BSTR, you will
// need to free the string after returning from the function call.   

CStringT::AnsiToOemCStringT::AnsiToOem

Convierte todos los caracteres de este CStringT objeto del juego de caracteres ANSI al Juego de caracteres OEM.Converts all the characters in this CStringT object from the ANSI character set to the OEM character set.

void AnsiToOem();

ComentariosRemarks

La función no está disponible si _UNICODE se define.The function isn't available if _UNICODE is defined.

EjemploExample

// OEM character 252 on most IBM-compatible computers in
// Western countries/regions is superscript n, as in 2^n.
// Converting it to the ANSI English charset results in a
// normal character 'n', which is the closest possible
// representation.

CStringT<char, StrTraitATL<char, ChTraitsCRT<char>>> str((WCHAR)252);
str.OemToAnsi();
ASSERT(str[0] == 'n');

// Be aware that in OEM to ANSI conversion the 'n'
// from the previous result cannot be converted back to
// a supsercript n because the system does not know what
// the character's value truly was.
str.AnsiToOem();
ASSERT(str[0] != 252);
ASSERT(str[0] == 'n');   

CStringT::AppendFormatCStringT::AppendFormat

Anexa datos con formato a un CStringT objeto existente.Appends formatted data to an existing CStringT object.

void __cdecl AppendFormat(PCXSTR pszFormat, [, argument] ...);
void __cdecl AppendFormat(UINT nFormatID, [, argument] ...);

ParámetrosParameters

pszFormat
Cadena de control de formato.A format-control string.

nFormatID
Identificador de recurso de cadena que contiene la cadena de control de formato.The string resource identifier that contains the format-control string.

argument
Argumentos opcionales.Optional arguments.

ComentariosRemarks

Esta función da formato y anexa una serie de caracteres y valores en CStringT .This function formats and appends a series of characters and values in the CStringT. Cada argumento opcional (si existe) se convierte y se anexa según la especificación de formato correspondiente en pszFormat o desde el recurso de cadena identificado por nFormatID .Each optional argument (if any) is converted and appended according to the corresponding format specification in pszFormat or from the string resource identified by nFormatID.

EjemploExample

// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;

CAtlString str = _T("Some data:\t");

str.AppendFormat(_T("X value = %.2f\n"), 12345.12345);
_tprintf_s(_T("%s"), (LPCTSTR) str);

CStringT::CollateCStringT::Collate

Compara dos cadenas mediante la función de texto genérico _tcscoll .Compares two strings using the generic-text function _tcscoll.

int Collate(PCXSTR psz) const throw();

ParámetrosParameters

psz
La otra cadena utilizada para la comparación.The other string used for comparison.

Valor devueltoReturn Value

Cero si las cadenas son idénticas, < 0 si este CStringT objeto es menor psz o > 0 si este CStringT objeto es mayor que psz .Zero if the strings are identical, < 0 if this CStringT object is less than psz, or > 0 if this CStringT object is greater than psz.

ComentariosRemarks

La función de texto genérico _tcscoll , que se define en TCHAR. H, se asigna a strcoll , wcscoll o _mbscoll , dependiendo del juego de caracteres que se define en tiempo de compilación.The generic-text function _tcscoll, which is defined in TCHAR.H, maps to either strcoll, wcscoll, or _mbscoll, depending on the character set that is defined at compile time. Cada función realiza una comparación con distinción entre mayúsculas y minúsculas de las cadenas según la página de códigos actualmente en uso.Each function does a case-sensitive comparison of the strings according to the code page currently in use. Para obtener más información, consulte strcoll (, wcscoll, _mbscoll, _strcoll_l, _wcscoll_l _mbscoll_l.For more information, see strcoll, wcscoll, _mbscoll, _strcoll_l, _wcscoll_l, _mbscoll_l.

CStringT::CollateNoCaseCStringT::CollateNoCase

Compara dos cadenas mediante la función de texto genérico _tcscoll .Compares two strings using the generic-text function _tcscoll.

int CollateNoCase(PCXSTR psz) const throw();

ParámetrosParameters

psz
La otra cadena utilizada para la comparación.The other string used for comparison.

Valor devueltoReturn Value

Cero si las cadenas son idénticas (sin distinción de mayúsculas y minúsculas), < 0 si este CStringT objeto es menor que psz (sin distinción de mayúsculas y minúsculas), o > 0 si este CStringT objeto es mayor que psz (sin distinción entre mayúsculas y minúsculas).Zero if the strings are identical (ignoring case), < 0 if this CStringT object is less than psz (ignoring case), or > 0 if this CStringT object is greater than psz (ignoring case).

ComentariosRemarks

La función de texto genérico _tcscoll , que se define en TCHAR. H, se asigna a stricoll , wcsicoll o _mbsicoll , dependiendo del juego de caracteres que se define en tiempo de compilación.The generic-text function _tcscoll, which is defined in TCHAR.H, maps to either stricoll, wcsicoll, or _mbsicoll, depending on the character set that is defined at compile time. Cada función realiza una comparación sin distinción entre mayúsculas y minúsculas de las cadenas, de acuerdo con la página de códigos actualmente en uso.Each function does a case-insensitive comparison of the strings, according to the code page currently in use. Para obtener más información, consulte strcoll (, wcscoll, _mbscoll, _strcoll_l, _wcscoll_l _mbscoll_l.For more information, see strcoll, wcscoll, _mbscoll, _strcoll_l, _wcscoll_l, _mbscoll_l.

EjemploExample

// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;

CAtlString str1 = _T("Co-Op");
CAtlString str2 = _T("con");

int n;

// Collation uses language rules, such as ignoring dashes.
// NoCase version ignores case.
n = str1.CollateNoCase(str2);
ASSERT(n < 0);

// Comparison is a strict ASCII comparison with no language rules
// but still ignores case in NoCase version.
n = str1.CompareNoCase(str2);
ASSERT(n < 0);   

CStringT::CompareCStringT::Compare

Compara dos cadenas (con distinción de mayúsculas y minúsculas).Compares two strings (case-sensitive).

int Compare(PCXSTR psz) const;

ParámetrosParameters

psz
La otra cadena utilizada para la comparación.The other string used for comparison.

Valor devueltoReturn Value

Cero si las cadenas son idénticas, < 0 si este CStringT objeto es menor psz o > 0 si este CStringT objeto es mayor que psz .Zero if the strings are identical, < 0 if this CStringT object is less than psz, or > 0 if this CStringT object is greater than psz.

ComentariosRemarks

La función de texto genérico _tcscmp , que se define en TCHAR. H, se asigna a strcmp , wcscmp o _mbscmp , dependiendo del juego de caracteres que se define en tiempo de compilación.The generic-text function _tcscmp, which is defined in TCHAR.H, maps to either strcmp, wcscmp, or _mbscmp, depending on the character set that is defined at compile time. Cada función realiza una comparación con distinción entre mayúsculas y minúsculas de las cadenas y no se ve afectada por la configuración regional.Each function does a case-sensitive comparison of the strings and isn't affected by locale. Para obtener más información, vea strcmp, wcscmp, _mbscmp.For more information, see strcmp, wcscmp, _mbscmp.

Si la cadena contiene valores NULL incrustados, a efectos de la comparación, se considera que la cadena está truncada en el primer carácter nulo incrustado.If the string contains embedded nulls, for purposes of comparison the string is considered to be truncated at the first embedded null character.

EjemploExample

El siguiente ejemplo muestra el uso de CStringT::Compare.The following example demonstrates the use of CStringT::Compare.

// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;

CAtlString s1(_T("abc"));
CAtlString s2(_T("abd"));
ASSERT(s1.Compare(s2) < 0);    // Compare with another CAtlString.
ASSERT(s1.Compare(_T("abe")) < 0); // Compare with LPTSTR string.   

CStringT::CompareNoCaseCStringT::CompareNoCase

Compara dos cadenas (sin distinción de mayúsculas y minúsculas).Compares two strings (case-insensitive).

int CompareNoCase(PCXSTR psz) const throw();

ParámetrosParameters

psz
La otra cadena utilizada para la comparación.The other string used for comparison.

Valor devueltoReturn Value

Cero si las cadenas son idénticas (sin distinción de mayúsculas y minúsculas), <0 si este CStringT objeto es menor que psz (sin distinción de mayúsculas y minúsculas), o >0 si este CStringT objeto es mayor que psz (sin distinción entre mayúsculas y minúsculas).Zero if the strings are identical (ignoring case), <0 if this CStringT object is less than psz (ignoring case), or >0 if this CStringT object is greater than psz (ignoring case).

ComentariosRemarks

La función de texto genérico _tcsicmp , que se define en TCHAR. H, se asigna a _stricmp _wcsicmp o _mbsicmp , dependiendo del juego de caracteres que se define en tiempo de compilación.The generic-text function _tcsicmp, which is defined in TCHAR.H, maps to either _stricmp, _wcsicmp or _mbsicmp, depending on the character set that is defined at compile time. Cada función realiza una comparación sin distinción entre mayúsculas y minúsculas de las cadenas.Each function does a case-insensitive comparison of the strings. La comparación depende del aspecto LC_CTYPE de la configuración regional, pero no LC_COLLATE.The comparison depends on the LC_CTYPE aspect of the locale but not LC_COLLATE. Para obtener más información, vea _stricmp, _wcsicmp, _mbsicmp, _stricmp_l, _wcsicmp_l, _mbsicmp_l.For more information, see _stricmp, _wcsicmp, _mbsicmp, _stricmp_l, _wcsicmp_l, _mbsicmp_l.

EjemploExample

// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;

CAtlString s1(_T("abc"));
CAtlString s2(_T("ABD"));
ASSERT(s1.CompareNoCase(s2) < 0); // Compare with a CAtlString.
ASSERT(s1.CompareNoCase(_T("ABE")) < 0); // Compare with LPTSTR string.   

CStringT::CStringTCStringT::CStringT

Construye un CStringT objeto.Constructs a CStringT object.

CStringT() throw() :
    CThisSimpleString(StringTraits::GetDefaultManager());

explicit CStringT(IAtlStringMgr* pStringMgr) throw() :
    CThisSimpleString( pStringMgr);

CStringT(const VARIANT& varSrc);

CStringT(const VARIANT& varSrc, IAtlStringMgr* pStringMgr);

CStringT(const CStringT& strSrc) :
    CThisSimpleString( strSrc);

operator CSimpleStringT<
                    BaseType,
                    !_CSTRING_IMPL_::_MFCDLLTraitsCheck<BaseType, StringTraits>
                    :: c_bIsMFCDLLTraits> &()

template <bool bMFCDLL>
CStringT(const CSimpleStringT<BaseType, bMFCDLL>& strSrc) :
    CThisSimpleString( strSrc);

template <class SystemString>
CStringT(SystemString^ pString) :
    CThisSimpleString( StringTraits::GetDefaultManager());

CStringT(const XCHAR* pszSrc) :
    CThisSimpleString( StringTraits::GetDefaultManager());

CSTRING_EXPLICIT CStringT(const YCHAR* pszSrc) :
    CThisSimpleString( StringTraits::GetDefaultManager());

CStringT(LPCSTR pszSrc, IAtlStringMgr* pStringMgr) :
    CThisSimpleString( pStringMgr);

CStringT(LPCWSTR pszSrc, IAtlStringMgr* pStringMgr) :
    CThisSimpleString( pStringMgr);

CSTRING_EXPLICIT CStringT(const unsigned char* pszSrc) :
    CThisSimpleString( StringTraits::GetDefaultManager());

/*CSTRING_EXPLICIT*/ CStringT(char* pszSrc) :
    CThisSimpleString( StringTraits::GetDefaultManager());

CSTRING_EXPLICIT CStringT(unsigned char* pszSrc) :
    CThisSimpleString( StringTraits::GetDefaultManager());

CSTRING_EXPLICIT CStringT(wchar_t* pszSrc) :
    CThisSimpleString( StringTraits::GetDefaultManager());

CStringT(const unsigned char* pszSrc, IAtlStringMgr* pStringMgr) :
    CThisSimpleString( pStringMgr);

CSTRING_EXPLICIT CStringT(char ch, int nLength = 1) :
    CThisSimpleString( StringTraits::GetDefaultManager());

CSTRING_EXPLICIT CStringT(wchar_t ch, int nLength = 1) :
    CThisSimpleString( StringTraits::GetDefaultManager());

CStringT(const XCHAR* pch, int nLength) :
    CThisSimpleString( pch, nLength, StringTraits::GetDefaultManager());

CStringT(const YCHAR* pch, int nLength) :
    CThisSimpleString( StringTraits::GetDefaultManager());

CStringT(const XCHAR* pch, int nLength, AtlStringMgr* pStringMgr) :
    CThisSimpleString( pch, nLength, pStringMgr);

CStringT(const YCHAR* pch, int nLength, IAtlStringMgr* pStringMgr) :
    CThisSimpleString( pStringMgr);

ParámetrosParameters

pch
Puntero a una matriz de caracteres de longitud nLength, no terminada en NULL.A pointer to an array of characters of length nLength, not null-terminated.

nLength
Recuento del número de caracteres de PCH.A count of the number of characters in pch.

ch
Un solo carácter.A single character.

pszSrc
Una cadena terminada en null que se va a copiar en este CStringT objeto.A null-terminated string to be copied into this CStringT object.

pStringMgr
Puntero al administrador de memoria para el CStringT objeto.A pointer to the memory manager for the CStringT object. Para obtener más información sobre la IAtlStringMgr Administración de memoria y para CStringT , vea Administración de memoria con CStringT.For more information on IAtlStringMgr and memory management for CStringT, see Memory Management with CStringT.

strSrc
Objeto existente CStringT que se va a copiar en este CStringT objeto.An existing CStringT object to be copied into this CStringT object. Para obtener más información sobre CThisString y CThisSimpleString , vea la sección Comentarios.For more information on CThisString and CThisSimpleString, see the Remarks section.

varSrc
Objeto Variant que se va a copiar en este CStringT objeto.A variant object to be copied into this CStringT object.

BaseType
Tipo de carácter de la clase String.The character type of the string class. Puede ser uno de los siguientes:Can be one of the following:

char (para cadenas de caracteres ANSI).char (for ANSI character strings).

wchar_t (para cadenas de caracteres Unicode).wchar_t (for Unicode character strings).

TCHAR (para cadenas de caracteres ANSI y Unicode).TCHAR (for both ANSI and Unicode character strings).

bMFCDLL
Valor booleano que especifica si el proyecto es un archivo DLL de MFC ( TRUE ) o no ( FALSE ).Boolean that specifies whether the project is an MFC DLL (TRUE) or not (FALSE).

SystemString
Debe ser System::String y el proyecto se debe compilar con /clr .Must be System::String, and the project must be compiled with /clr.

pString
Identificador de un CStringT objeto.A handle for a CStringT object.

ComentariosRemarks

Dado que los constructores copian los datos de entrada en un nuevo almacenamiento asignado, pueden producirse excepciones de memoria.Because the constructors copy the input data into new allocated storage, memory exceptions may result. Algunos de estos constructores actúan como funciones de conversión.Some of these constructors act as conversion functions. Esto permite sustituir, por ejemplo, un LPTSTR donde CStringT se espera un objeto.This allows you to substitute, for example, an LPTSTR where a CStringT object is expected.

  • CStringT( LPCSTR lpsz ): Construye un Unicode CStringT a partir de una cadena ANSI.CStringT( LPCSTR lpsz ): Constructs a Unicode CStringT from an ANSI string. También puede usar este constructor para cargar un recurso de cadena, tal como se muestra en el ejemplo siguiente.You can also use this constructor to load a string resource as shown in the example below.

  • CStringT(``LPCWSTR lpsz ): Construye a CStringT partir de una cadena Unicode.CStringT( LPCWSTR lpsz ): Constructs a CStringT from a Unicode string.

  • CStringT( const unsigned char* psz ): Permite construir un a CStringT partir de un puntero a unsigned char .CStringT( const unsigned char* psz ): Allows you to construct a CStringT from a pointer to unsigned char.

Nota

Defina la _CSTRING_DISABLE_NARROW_WIDE_CONVERSION macro para desactivar la conversión implícita de cadenas entre cadenas ANSI y Unicode.Define the _CSTRING_DISABLE_NARROW_WIDE_CONVERSION macro to turn off implicit string conversion between ANSI and Unicode strings. La macro excluye de los constructores de compilación que admiten la conversión.The macro excludes from compilation constructors that support conversion.

El strSrc parámetro puede ser un CStringT objeto o CThisSimpleString .The strSrc parameter can be either a CStringT or CThisSimpleString object. Para CStringT , utilice una de sus creaciones de instancias predeterminadas ( CString , CStringA o CStringW ); para CThisSimpleString , utilice un this puntero.For CStringT, use one of its default instantiations (CString, CStringA, or CStringW); for CThisSimpleString, use a this pointer. CThisSimpleString declara una instancia de la clase CSimpleStringT, que es una clase de cadena menor con una funcionalidad menos integrada que la CStringT clase.CThisSimpleString declares an instance of the CSimpleStringT Class, which is a smaller string class with less built-in functionality than the CStringT class.

El operador CSimpleStringT<>&() de sobrecarga construye un CStringT objeto a partir de una CSimpleStringT declaración.The overload operator CSimpleStringT<>&() constructs a CStringT object from a CSimpleStringT declaration.

Nota

Aunque es posible crear CStringT instancias de que contengan caracteres nulos incrustados, se recomienda que lo permitan.Although it is possible to create CStringT instances that contain embedded null characters, we recommend against it. Llamar a métodos y operadores en CStringT objetos que contengan caracteres nulos incrustados puede producir resultados imprevistos.Calling methods and operators on CStringT objects that contain embedded null characters can produce unintended results.

EjemploExample

// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;

CAtlString s1;                    // Empty string
CAtlString s2(_T("cat"));           // From a C string literal
CAtlString s3 = s2;               // Copy constructor
CAtlString s4(s2 + _T(" ") + s3);   // From a string expression

CAtlString s5(_T('x'));             // s5 = "x"
CAtlString s6(_T('x'), 6);          // s6 = "xxxxxx"

CAtlString s7((LPCSTR)ID_FILE_NEW); // s7 = "Create a new document"

VARIANT var;
V_VT(&var) = VT_BSTR;
V_BSTR(&var) = ::SysAllocString(L"Football is a fun sport.");
CAtlString s8(var); // s8 = "Football is a fun sport."

// The following statement does not call the assignment operator.
// The compiler considers the following statement equivalent to
// CAtlString city("Paris")
CAtlString city = _T("Paris");   

CStringT::~CStringTCStringT::~CStringT

Destruye el CStringT objeto.Destroys the CStringT object.

~CStringT() throw();

ComentariosRemarks

Destruye el CStringT objeto.Destroys the CStringT object.

CStringT::DeleteCStringT::Delete

Elimina un carácter o caracteres de una cadena a partir del carácter que se encuentra en el índice especificado.Deletes a character or characters from a string starting with the character at the given index.

int Delete(int iIndex, int nCount = 1);

ParámetrosParameters

iIndex
Índice de base cero del primer carácter del CStringT objeto que se va a eliminar.The zero-based index of the first character in the CStringT object to delete.

nCount
Número de caracteres que se van a quitar.The number of characters to be removed.

Valor devueltoReturn Value

Longitud de la cadena modificada.The length of the changed string.

ComentariosRemarks

Si nCount es mayor que la cadena, se quitará el resto de la cadena.If nCount is longer than the string, the rest of the string will be removed.

EjemploExample

// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;

CAtlString str(_T("Soccer is best, but hockey is quicker!"));
_tprintf_s(_T("Before: %s\n"), (LPCTSTR)str);

int n = str.Delete(6, 3);
_tprintf_s(_T("After: %s\n"), (LPCTSTR)str);
ASSERT(n == str.GetLength());
Before: Soccer is best,
    but hockey is quicker!
After: Soccer best,
    but hockey is quicker!

CStringT::FindCStringT::Find

Busca en esta cadena la primera coincidencia de un carácter o subcadena.Searches this string for the first match of a character or substring.

int Find(PCXSTR pszSub, int iStart=0) const throw();
int Find(XCHAR ch, int iStart=0) const throw();

ParámetrosParameters

pszSub
Subcadena que se va a buscar.A substring to search for.

iStart
Índice del carácter de la cadena en la que se va a comenzar la búsqueda, o 0 para comenzar desde el principio.The index of the character in the string to begin the search with, or 0 to start from the beginning.

ch
Carácter único que se va a buscar.A single character to search for.

Valor devueltoReturn Value

Índice de base cero del primer carácter de este CStringT objeto que coincide con la subcadena o los caracteres solicitados;-1 si no se encuentra la subcadena o carácter.The zero-based index of the first character in this CStringT object that matches the requested substring or characters; -1 if the substring or character isn't found.

ComentariosRemarks

La función se sobrecarga para aceptar tanto caracteres individuales (similar a la función en tiempo de ejecución strchr ) como cadenas (similar a strstr ).The function is overloaded to accept both single characters (similar to the run-time function strchr) and strings (similar to strstr).

EjemploExample

// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;

CAtlString s(_T("abcdef"));
ASSERT(s.Find(_T('c')) == 2);
ASSERT(s.Find(_T("de")) == 3);

CAtlString str(_T("The waves are still"));
int n = str.Find(_T('e'), 5);
ASSERT(n == 7);   

CStringT::FindOneOfCStringT::FindOneOf

Busca en esta cadena el primer carácter que coincide con cualquier carácter incluido en pszCharSet .Searches this string for the first character that matches any character contained in pszCharSet.

int FindOneOf(PCXSTR pszCharSet) const throw();

ParámetrosParameters

pszCharSet
Cadena que contiene caracteres para buscar coincidencias.String containing characters for matching.

Valor devueltoReturn Value

Índice de base cero del primer carácter de esta cadena que también está en pszCharSet ;-1 si no hay ninguna coincidencia.The zero-based index of the first character in this string that is also in pszCharSet; -1 if there is no match.

ComentariosRemarks

Busca la primera aparición de cualquiera de los caracteres de pszCharSet .Finds the first occurrence of any of the characters in pszCharSet.

EjemploExample

// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;

CAtlString s(_T("abcdef"));
ASSERT(s.FindOneOf(_T("xd")) == 3); // 'd' is first match   

CStringT::FormatCStringT::Format

Escribe datos con formato en CStringT de la misma manera que sprintf_s da formato a los datos en una matriz de caracteres de estilo C.Writes formatted data to a CStringT in the same way that sprintf_s formats data into a C-style character array.

void __cdecl Format(UINT nFormatID, [, argument]...);
void __cdecl Format(PCXSTR pszFormat,  [, argument] ...);

ParámetrosParameters

nFormatID
Identificador de recurso de cadena que contiene la cadena de control de formato.The string resource identifier that contains the format-control string.

pszFormat
Cadena de control de formato.A format-control string.

argument
Argumentos opcionales.Optional arguments.

ComentariosRemarks

Esta función da formato y almacena una serie de caracteres y valores en CStringT .This function formats and stores a series of characters and values in the CStringT. Cada argumento opcional (si existe) se convierte y se genera de acuerdo con la especificación de formato correspondiente en pszFormat o desde el recurso de cadena identificado por nFormatID .Each optional argument (if any) is converted and output according to the corresponding format specification in pszFormat or from the string resource identified by nFormatID.

Se producirá un error en la llamada si el propio objeto de cadena se ofrece como parámetro a Format .The call will fail if the string object itself is offered as a parameter to Format. Por ejemplo, el código siguiente producirá resultados imprevisibles:For example, the following code will cause unpredictable results:

CAtlString str = _T("Some Data");
str.Format(_T("%s%d"), str, 123);   
// Attention: str is also used in the parameter list.   

Para obtener más información, vea Sintaxis de especificación de formato: Funciones printf y wprintf.For more information, see Format Specification Syntax: printf and wprintf Functions.

EjemploExample

// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;
CAtlString str;

str.Format(_T("Floating point: %.2f\n"), 12345.12345);
_tprintf_s(_T("%s"), (LPCTSTR) str);

str.Format(_T("Left-justified integer: %.6d\n"), 35);
_tprintf_s(_T("%s"), (LPCTSTR) str);

CStringT::FormatMessageCStringT::FormatMessage

Da formato a una cadena de mensaje.Formats a message string.

void __cdecl FormatMessage(UINT nFormatID, [, argument]...);
void __cdecl FormatMessage(PCXSTR pszFormat, [, argument]...);

ParámetrosParameters

nFormatID
Identificador de recurso de cadena que contiene el texto del mensaje sin formato.The string resource identifier that contains the unformatted message text.

pszFormat
Apunta a la cadena de control de formato.Points to the format-control string. Se examinará en busca de inserciones y se le aplicará el formato correspondiente.It will be scanned for inserts and formatted accordingly. La cadena de formato es similar a las cadenas de formato de estilo printf de la función en tiempo de ejecución, salvo que permite que los parámetros se inserten en un orden arbitrario.The format string is similar to run-time function printf-style format strings, except it allows for the parameters to be inserted in an arbitrary order.

argument
Argumentos opcionales.Optional arguments.

ComentariosRemarks

La función requiere una definición de mensaje como entrada.The function requires a message definition as input. La definición del mensaje viene determinada por pszFormat o desde el recurso de cadena identificado por nFormatID .The message definition is determined by pszFormat or from the string resource identified by nFormatID. La función copia el texto del mensaje con formato en el CStringT objeto, procesando cualquier secuencia de inserción incrustada si se solicita.The function copies the formatted message text to the CStringT object, processing any embedded insert sequences if requested.

Nota

FormatMessage intenta asignar la memoria del sistema para la cadena con el nuevo formato.FormatMessage attempts to allocate system memory for the newly formatted string. Si se produce un error en este intento, se produce automáticamente una excepción de memoria.If this attempt fails, a memory exception is automatically thrown.

Cada inserción debe tener un parámetro correspondiente después del pszFormat nFormatID parámetro o.Each insert must have a corresponding parameter following the pszFormat or nFormatID parameter. En el texto del mensaje, se admiten varias secuencias de escape para dar formato al mensaje de forma dinámica.Within the message text, several escape sequences are supported for dynamically formatting the message. Para obtener más información, vea la función FormatMessage de Windows en el Windows SDK.For more information, see the Windows FormatMessage function in the Windows SDK.

EjemploExample

// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;

CAtlString str;
int nAsked = 5;
int nAgree = 4;

str.FormatMessage(_T("%1!d! of %2!d! writers agree: Soccer is %3%!"), 
   nAgree, nAsked, _T("Best"));
ASSERT(str == _T("4 of 5 writers agree: Soccer is Best!"));   

CStringT::FormatMessageVCStringT::FormatMessageV

Da formato a una cadena de mensaje mediante una lista de argumentos de variable.Formats a message string using a variable argument list.

void FormatMessageV(PCXSTR pszFormat, va_list* pArgList);

ParámetrosParameters

pszFormat
Apunta a la cadena de control de formato.Points to the format-control string. Se examinará en busca de inserciones y se le aplicará el formato correspondiente.It will be scanned for inserts and formatted accordingly. La cadena de formato es similar a las cadenas de formato de estilo de función en tiempo de ejecución printf , salvo que permite que los parámetros se inserten en un orden arbitrario.The format string is similar to run-time function printf-style format strings, except it allows for the parameters to be inserted in an arbitrary order.

pArgList
Puntero a una lista de argumentos.Pointer to a list of arguments.

ComentariosRemarks

La función requiere una definición de mensaje como entrada, determinada por pszFormat .The function requires a message definition as input, determined by pszFormat. La función copia el texto del mensaje con formato y una lista variable de argumentos en el CStringT objeto, procesando cualquier secuencia de inserción incrustada si se solicita.The function copies the formatted message text and a variable list of arguments to the CStringT object, processing any embedded insert sequences if requested.

Nota

FormatMessageV llama a CStringT:: FormatMessage, que intenta asignar la memoria del sistema para la cadena con el nuevo formato.FormatMessageV calls CStringT::FormatMessage, which attempts to allocate system memory for the newly formatted string. Si se produce un error en este intento, se produce automáticamente una excepción de memoria.If this attempt fails, a memory exception is automatically thrown.

Para obtener más información, vea la función FormatMessage de Windows en el Windows SDK.For more information, see the Windows FormatMessage function in the Windows SDK.

CStringT::FormatVCStringT::FormatV

Da formato a una cadena de mensaje mediante una lista de argumentos de variable.Formats a message string using a variable argument list.

void FormatV(PCXSTR pszFormat, va_list args);

ParámetrosParameters

pszFormat
Apunta a la cadena de control de formato.Points to the format-control string. Se examinará en busca de inserciones y se le aplicará el formato correspondiente.It will be scanned for inserts and formatted accordingly. La cadena de formato es similar a las cadenas de formato de estilo de función en tiempo de ejecución printf , salvo que permite que los parámetros se inserten en un orden arbitrario.The format string is similar to run-time function printf-style format strings, except it allows for the parameters to be inserted in an arbitrary order.

args
Puntero a una lista de argumentos.Pointer to a list of arguments.

ComentariosRemarks

Escribe una cadena con formato y una lista variable de argumentos en una CStringT cadena de la misma manera que vsprintf_s da formato a los datos en una matriz de caracteres de estilo C.Writes a formatted string and a variable list of arguments to a CStringT string in the same way that vsprintf_s formats data into a C-style character array.

EjemploExample

void WriteString(LPCTSTR pstrFormat, ...)
{
    CString str;

    // format and write the data you were given
    va_list args;
    va_start(args, pstrFormat);

    str.FormatV(pstrFormat, args);
    va_end(args);

    _tprintf_s(str);
    return;
}
// Call the above WriteString function.
WriteString(_T("%d error(s) found in %d line(s)"), 10, 1351);

CStringT::GetEnvironmentVariableCStringT::GetEnvironmentVariable

Establece la cadena en el valor de la variable de entorno especificada.Sets the string to the value of the specified environment variable.

BOOL GetEnvironmentVariable(PCXSTR pszVar);

ParámetrosParameters

pszVar
Puntero a una cadena terminada en null que especifica la variable de entorno.Pointer to a null-terminated string that specifies the environment variable.

Valor devueltoReturn Value

Si es correcta, su valor es distinto de cero. En caso contrario, es cero.Nonzero if successful; otherwise 0.

ComentariosRemarks

Recupera el valor de la variable especificada del bloque de entorno del proceso de llamada.Retrieves the value of the specified variable from the environment block of the calling process. El valor está en forma de una cadena de caracteres terminada en NULL.The value is in the form of a null-terminated string of characters.

EjemploExample

// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;
CAtlString EnvStr;

EnvStr.GetEnvironmentVariable(_T("TEMP"));
_tprintf_s(_T("Current value of TEMP variable: %s\n"), EnvStr);

CStringT::InsertCStringT::Insert

Inserta un carácter individual o una subcadena en el índice especificado de la cadena.Inserts a single character or a substring at the given index within the string.

int Insert(int iIndex, PCXSTR psz);
int Insert(int iIndex, XCHAR ch);

ParámetrosParameters

iIndex
Índice del carácter antes del cual se llevará a cabo la inserción.The index of the character before which the insertion will take place.

psz
Puntero a la subcadena que se va a insertar.A pointer to the substring to be inserted.

ch
Carácter que se va a insertar.The character to be inserted.

Valor devueltoReturn Value

Longitud de la cadena modificada.The length of the changed string.

ComentariosRemarks

El iIndex parámetro identifica el primer carácter que se va a desplace para dejar espacio para el carácter o subcadena.The iIndex parameter identifies the first character that will be moved to make room for the character or substring. Si NINDEX es cero, la inserción se realizará antes de la cadena completa.If nIndex is zero, the insertion will occur before the entire string. Si NINDEX es mayor que la longitud de la cadena, la función concatenará la cadena actual y el nuevo material proporcionado por ch o psz .If nIndex is higher than the length of the string, the function will concatenate the present string and the new material provided by either ch or psz.

EjemploExample

// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;

CAtlString str(_T("SoccerBest"));
int n = str.Insert(6, _T("is "));
ASSERT(n == str.GetLength());
_tprintf_s(_T("1: %s\n"), (LPCTSTR) str);

n = str.Insert(6, _T(' '));
ASSERT(n == str.GetLength());
_tprintf_s(_T("2: %s\n"), (LPCTSTR) str);

n = str.Insert(55, _T('!'));
ASSERT(n == str.GetLength());
_tprintf_s(_T("3: %s\n"), (LPCTSTR) str);

CStringT::LeftCStringT::Left

Extrae los caracteres situados más a la izquierda nCount de este CStringT objeto y devuelve una copia de la subcadena extraída.Extracts the leftmost nCount characters from this CStringT object and returns a copy of the extracted substring.

CStringT Left(int nCount) const;

ParámetrosParameters

nCount
Número de caracteres que se van a extraer de este CStringT objeto.The number of characters to extract from this CStringT object.

Valor devueltoReturn Value

CStringT Objeto que contiene una copia del intervalo de caracteres especificado.A CStringT object that contains a copy of the specified range of characters. El objeto devuelto CStringT puede estar vacío.The returned CStringT object may be empty.

ComentariosRemarks

Si nCount supera la longitud de la cadena, se extrae toda la cadena.If nCount exceeds the string length, then the entire string is extracted. Left es similar a la función Left de Basic.Left is similar to the Basic Left function.

En el caso de juegos de caracteres multibyte (MBCS), nCount trata cada secuencia de 8 bits como un carácter, de modo que nCount devuelve el número de caracteres de varios bytes multiplicado por dos.For multi-byte character sets (MBCS), nCount treats each 8-bit sequence as a character, so that nCount returns the number of multi-byte characters multiplied by two.

EjemploExample

// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;

CAtlString s(_T("abcdef"));
ASSERT(s.Left(2) == _T("ab"));   

CStringT::LoadStringCStringT::LoadString

Lee un recurso de cadena de Windows, identificado por nID, en un CStringT objeto existente.Reads a Windows string resource, identified by nID, into an existing CStringT object.

BOOL LoadString(HINSTANCE hInstance, UINT nID, WORD wLanguageID);
BOOL LoadString(HINSTANCE hInstance, UINT nID);
BOOL LoadString(UINT nID);

ParámetrosParameters

hInstance
Identificador de la instancia del módulo.A handle to the instance of the module.

nID
IDENTIFICADOR de recurso de cadena de Windows.A Windows string resource ID.

wLanguageID
Lenguaje del recurso de cadena.The language of the string resource.

Valor devueltoReturn Value

Distinto de cero si la carga de recursos se realizó correctamente; de lo contrario, es 0.Nonzero if resource load was successful; otherwise 0.

ComentariosRemarks

Carga el recurso de cadena (nID) desde el módulo especificado (hInstance) mediante el lenguaje especificado (wLanguage).Loads the string resource (nID) from the specified module (hInstance) using the specified language (wLanguage).

EjemploExample

// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;

CAtlString s;
s.LoadString(IDS_APP_TITLE);   

CStringT::MakeLowerCStringT::MakeLower

Convierte el CStringT objeto en una cadena en minúsculas.Converts the CStringT object to a lowercase string.

CStringT& MakeLower();

Valor devueltoReturn Value

Cadena en minúsculas resultante.The resulting lowercase string.

EjemploExample

// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;

CAtlString s(_T("ABC"));

ASSERT(s.MakeLower() == _T("abc"));   

CStringT::MakeReverseCStringT::MakeReverse

Invierte el orden de los caracteres en el CStringT objeto.Reverses the order of the characters in the CStringT object.

CStringT& MakeReverse();

Valor devueltoReturn Value

Cadena invertida resultante.The resulting reversed string.

EjemploExample

// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;

CAtlString s(_T("abc"));

ASSERT(s.MakeReverse() == _T("cba"));   

CStringT::MakeUpperCStringT::MakeUpper

Convierte el CStringT objeto en una cadena en mayúsculas.Converts the CStringT object to an uppercase string.

CStringT& MakeUpper();

Valor devueltoReturn Value

Cadena resultante en mayúsculas.The resulting uppercase string.

ComentariosRemarks

EjemploExample

// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;

CAtlString s(_T("abc"));

ASSERT(s.MakeUpper() == _T("ABC"));   

CStringT::MidCStringT::Mid

Extrae una subcadena de nCount caracteres de longitud de este CStringT objeto, a partir de la posición iFirst (basada en cero).Extracts a substring of length nCount characters from this CStringT object, starting at position iFirst (zero-based).

CStringT Mid(int iFirst, int nCount) const;
CStringT Mid(int iFirst) const;

ParámetrosParameters

iFirst
Índice de base cero del primer carácter de este CStringT objeto que se va a incluir en la subcadena extraída.The zero-based index of the first character in this CStringT object that is to be included in the extracted substring.

nCount
Número de caracteres que se van a extraer de este CStringT objeto.The number of characters to extract from this CStringT object. Si no se proporciona este parámetro, se extrae el resto de la cadena.If this parameter isn't supplied, then the rest of the string is extracted.

Valor devueltoReturn Value

CStringT Objeto que contiene una copia del intervalo de caracteres especificado.A CStringT object that contains a copy of the specified range of characters. El objeto devuelto CStringT puede estar vacío.The returned CStringT object may be empty.

ComentariosRemarks

La función devuelve una copia de la subcadena extraída.The function returns a copy of the extracted substring. Mid es similar a la función Mid básica (salvo que los índices de Basic se basan en uno).Mid is similar to the Basic Mid function (except that indexes in Basic are one-based).

En el caso de los juegos de caracteres multibyte (MBCS), nCount hace referencia a cada carácter de 8 bits; es decir, un byte inicial y final de un carácter multibyte se cuentan como dos caracteres.For multibyte character sets (MBCS), nCount refers to each 8-bit character; that is, a lead and trail byte in one multibyte character are counted as two characters.

EjemploExample

// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;

CAtlString s(_T("abcdef"));
ASSERT(s.Mid(2, 3) == _T("cde"));   

CStringT::OemToAnsiCStringT::OemToAnsi

Convierte todos los caracteres de este CStringT objeto del juego de caracteres OEM en el juego de caracteres ANSI.Converts all the characters in this CStringT object from the OEM character set to the ANSI character set.

void OemToAnsi();

ComentariosRemarks

Esta función no está disponible si _UNICODE se define.This function isn't available if _UNICODE is defined.

EjemploExample

Vea el ejemplo de CStringT:: AnsiToOem.See the example for CStringT::AnsiToOem.

CStringT::operator =CStringT::operator =

Asigna un nuevo valor a la cadena.Assigns a new value to the string.

CStringT& operator=(const CStringT& strSrc);

template<bool bMFCDLL>
CStringT& operator=(const CSimpleStringT<BaseType, bMFCDLL>& str);
CStringT& operator=(PCXSTR pszSrc);
CStringT& operator=(PCYSTR pszSrc);
CStringT& operator=(const unsigned char* pszSrc);
CStringT& operator=(XCHAR ch);
CStringT& operator=(YCHAR ch);
CStringT& operator=(const VARIANT& var);

ParámetrosParameters

strSrc
CStringT Que se va a asignar a esta cadena.A CStringT to assign to this string.

str
Referencia a un objeto CThisSimpleString.A reference to a CThisSimpleString object.

bMFCDLL
Un valor booleano que especifica si el proyecto es un archivo DLL de MFC o no.A boolean specifying whether the project is an MFC DLL or not.

BaseType
Tipo base de cadena.The string base type.

var
Objeto Variant que se va a asignar a esta cadena.A variant object to assign to this string.

ch
Carácter ANSI o Unicode que se va a asignar a la cadena.An ANSI or Unicode character to assign to the string.

pszSrc
Puntero a la cadena original que se va a asignar.A pointer to the original string being assigned.

ComentariosRemarks

El operador de asignación acepta otro CStringT objeto, un puntero de carácter o un solo carácter.The assignment operator accepts another CStringT object, a character pointer, or a single character. Se pueden producir excepciones de memoria cada vez que se usa este operador porque se puede asignar un nuevo almacenamiento.Memory exceptions can occur whenever you use this operator because new storage can be allocated.

Para obtener información sobre CThisSimpleString , vea la sección Comentarios de CStringT:: CStringT.For information on CThisSimpleString, see the Remarks section of CStringT::CStringT.

Nota

Aunque es posible crear CStringT instancias de que contengan caracteres nulos incrustados, se recomienda que lo permitan.Although it is possible to create CStringT instances that contain embedded null characters, we recommend against it. Llamar a métodos y operadores en CStringT objetos que contengan caracteres nulos incrustados puede producir resultados imprevistos.Calling methods and operators on CStringT objects that contain embedded null characters can produce unintended results.

CStringT::operator +CStringT::operator +

Concatena dos cadenas o un carácter y una cadena.Concatenates two strings or a character and a string.

friend CStringT operator+(const CStringT& str1, const CStringT& str2);
friend CStringT operator+(const CStringT& str1, PCXSTR psz2);
friend CStringT operator+(PCXSTR psz1, const CStringT& str2,);
friend CStringT operator+(char ch1, const CStringT& str2,);
friend CStringT operator+(const CStringT& str1, char ch2);
friend CStringT operator+(const CStringT& str1, wchar_t ch2);
friend CStringT operator+(wchar_t ch1, const CStringT& str2,);

ParámetrosParameters

ch1
Carácter ANSI o Unicode que se va a concatenar con una cadena.An ANSI or Unicode character to concatenate with a string.

ch2
Carácter ANSI o Unicode que se va a concatenar con una cadena.An ANSI or Unicode character to concatenate with a string.

str1
CStringT Que se va a concatenar con una cadena o un carácter.A CStringT to concatenate with a string or character.

str2
CStringT Que se va a concatenar con una cadena o un carácter.A CStringT to concatenate with a string or character.

psz1
Puntero a una cadena terminada en null que se va a concatenar con una cadena o un carácter.A pointer to a null-terminated string to concatenate with a string or character.

psz2
Puntero a una cadena que se va a concatenar con una cadena o un carácter.A pointer to a string to concatenate with a string or character.

ComentariosRemarks

Hay siete formas de sobrecarga de la CStringT::operator+ función.There are seven overload forms of the CStringT::operator+ function. La primera versión concatena dos objetos existentes CStringT .The first version concatenates two existing CStringT objects. Los dos siguientes concatenan un CStringT objeto y una cadena terminada en NULL.The next two concatenate a CStringT object and a null-terminated string. Los dos siguientes concatenan un CStringT objeto y un carácter ANSI.The next two concatenate a CStringT object and an ANSI character. Los dos últimos concatenan un CStringT objeto y un carácter Unicode.The last two concatenate a CStringT object and a Unicode character.

Nota

Aunque es posible crear CStringT instancias de que contengan caracteres nulos incrustados, se recomienda que lo permitan.Although it is possible to create CStringT instances that contain embedded null characters, we recommend against it. Llamar a métodos y operadores en CStringT objetos que contengan caracteres nulos incrustados puede producir resultados imprevistos.Calling methods and operators on CStringT objects that contain embedded null characters can produce unintended results.

EjemploExample

// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;
CAtlString s1(_T("dog ")), s2(_T(" awake")), s3;  // Empty CAtlString objects

s1= _T("The ") + s1;
s3= s1 + _T('i');
s3= s3 + _T('s');
s3= s3 + s2;
ASSERT(s3 == _T("The dog is awake"));   

CStringT::operator +=CStringT::operator +=

Concatena caracteres al final de la cadena.Concatenates characters to the end of the string.

CStringT& operator+=(const CThisSimpleString& str);

template<bool bMFCDLL>
CStringT& operator+=(const const CSimpleStringT<BaseType, bMFCDLL>& str);

template<int t_nSize>
CStringT& operator+=(const CStaticString<XCHAR, t_nSize>& strSrc);
CStringT& operator+=(PCXSTR pszSrc);
CStringT& operator+=(PCYSTR pszSrc);
CStringT& operator+=(char ch);
CStringT& operator+=(unsigned char ch);
CStringT& operator+=(wchar_t ch);
CStringT& operator+=(const VARIANT& var);

ParámetrosParameters

str
Referencia a un objeto CThisSimpleString.A reference to a CThisSimpleString object.

bMFCDLL
Un valor booleano que especifica si el proyecto es un archivo DLL de MFC o no.A boolean specifying whether the project is an MFC DLL or not.

BaseType
Tipo base de cadena.The string base type.

var
Objeto Variant que se va a concatenar en esta cadena.A variant object to concatenate to this string.

ch
Carácter ANSI o Unicode que se va a concatenar con una cadena.An ANSI or Unicode character to concatenate with a string.

pszSrc
Puntero a la cadena original que se va a concatenar.A pointer to the original string being concatenated.

strSrc
CStringT Que se va a concatenar con esta cadena.A CStringT to concatenate to this string.

ComentariosRemarks

El operador acepta otro CStringT objeto, un puntero de carácter o un carácter único.The operator accepts another CStringT object, a character pointer, or a single character. Se pueden producir excepciones de memoria cada vez que se usa este operador de concatenación porque se puede asignar un nuevo almacenamiento para los caracteres agregados a este CStringT objeto.Memory exceptions can occur whenever you use this concatenation operator because new storage can be allocated for characters added to this CStringT object.

Para obtener información sobre CThisSimpleString , vea la sección Comentarios de CStringT:: CStringT.For information on CThisSimpleString, see the Remarks section of CStringT::CStringT.

Nota

Aunque es posible crear CStringT instancias de que contengan caracteres nulos incrustados, se recomienda que lo permitan.Although it is possible to create CStringT instances that contain embedded null characters, we recommend against it. Llamar a métodos y operadores en CStringT objetos que contengan caracteres nulos incrustados puede producir resultados imprevistos.Calling methods and operators on CStringT objects that contain embedded null characters can produce unintended results.

EjemploExample

// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;

CAtlString s(_T("abc"));
ASSERT((s += _T("def")) == _T("abcdef"));   

CStringT::operator ==CStringT::operator ==

Determina si dos cadenas son lógicamente iguales.Determines whether two strings are logically equal.

friend bool operator==(const CStringT& str1, const CStringT& str2) throw();
friend bool operator==(const CStringT& str1, PCXSTR psz2) throw();
friend bool operator==(const CStringT& str1, PCYSTR psz2) throw();
friend bool operator==(const CStringT& str1, XCHAR ch2) throw();
friend bool operator==(PCXSTR psz1, const CStringT& str2) throw();
friend bool operator==(PCYSTR psz1, const CStringT& str2,) throw();
friend bool operator==(XCHAR ch1, const CStringT& str2,) throw();

ParámetrosParameters

ch1
Carácter ANSI o Unicode para la comparación.An ANSI or Unicode character for comparison.

ch2
Carácter ANSI o Unicode para la comparación.An ANSI or Unicode character for comparison.

str1
CStringT Para la comparación.A CStringT for comparison.

str2
CStringT Para la comparación.A CStringT for comparison.

psz1
Puntero a una cadena terminada en null para la comparación.A pointer to a null-terminated string for comparison.

psz2
Puntero a una cadena terminada en null para la comparación.A pointer to a null-terminated string for comparison.

ComentariosRemarks

Comprueba si una cadena o un carácter del lado izquierdo es igual a una cadena o carácter del lado derecho y devuelve o en TRUE FALSE consecuencia.Tests whether a string or character on the left side is equal to a string or character on the right side, and returns TRUE or FALSE accordingly.

EjemploExample

// typedef CStringT< TCHAR, StrTraitATL< TCHAR > > CAtlString;
CAtlString s1(_T("dog")), s2(_T("f")), s3(_T("dog"));

ASSERT(s1 == _T("dog"));
ASSERT(s2 == _T('f'));
ASSERT(s1 == s3);   

CStringT::operator !=CStringT::operator !=

Determina si dos cadenas no son iguales lógicamente.Determines whether two strings are logically not equal.

friend bool operator!=(const CStringT& str1, const CStringT& str2) throw();
friend bool operator!=(const CStringT& str1, PCXSTR psz2) throw();
friend bool operator!=(const CStringT& str1, PCYSTR psz2) throw();
friend bool operator!=(const CStringT& str1, XCHAR ch2) throw();
friend bool operator!=(PCXSTR psz1, const CStringT& str2) throw();
friend bool operator!=(PCYSTR psz1, const CStringT& str2,) throw();
friend bool operator!=(XCHAR ch1, const CStringT& str2,) throw();

ParámetrosParameters

ch1
Carácter ANSI o Unicode que se va a concatenar con una cadena.An ANSI or Unicode character to concatenate with a string.

ch2
Carácter ANSI o Unicode que se va a concatenar con una cadena.An ANSI or Unicode character to concatenate with a string.

str1
CStringT Para la comparación.A CStringT for comparison.

str2
CStringT Para la comparación.A CStringT for comparison.

psz1
Puntero a una cadena terminada en null para la comparación.A pointer to a null-terminated string for comparison.

psz2
Puntero a una cadena terminada en null para la comparación.A pointer to a null-terminated string for comparison.

ComentariosRemarks

Comprueba si una cadena o un carácter del lado izquierdo no es igual a una cadena o carácter del lado derecho.Tests if a string or character on the left side isn't equal to a string or character on the right side.

EjemploExample

// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;
CAtlString s1(_T("cat")), s2(_T("f")), s3(_T("horse"));

ASSERT(s1 != _T("dog"));
ASSERT(s2 != _T('t'));
ASSERT(s1 != s2);   

CStringT::operator <CStringT::operator <

Determina si la cadena del lado izquierdo del operador es menor que la cadena del lado derecho.Determines whether the string on the left side of the operator is less than the string on the right side.

friend bool operator<(const CStringT& str1, const CStringT& str2) throw();
friend bool operator<(const CStringT& str1, PCXSTR psz2) throw();
friend bool operator<(PCXSTR psz1, const CStringT& str2) throw();

ParámetrosParameters

str1
CStringT Para la comparación.A CStringT for comparison.

str2
CStringT Para la comparación.A CStringT for comparison.

psz1
Puntero a una cadena terminada en null para la comparación.A pointer to a null-terminated string for comparison.

psz2
Puntero a una cadena terminada en null para la comparación.A pointer to a null-terminated string for comparison.

ComentariosRemarks

Una comparación lexicográfica entre cadenas, carácter a carácter hasta que:A lexicographical comparison between strings, character by character until:

  • Encuentra dos caracteres correspondientes distintos y el resultado de la comparación se toma como el resultado de la comparación entre las cadenas.It finds two corresponding characters unequal, and the result of their comparison is taken as the result of the comparison between the strings.

  • No encuentra ninguna desigualdad, pero una cadena tiene más caracteres que la otra y la cadena más corta se considera menor que la cadena más larga.It finds no inequalities, but one string has more characters than the other, and the shorter string is considered less than the longer string.

  • No encuentra ninguna desigualdad y encuentra que las cadenas tienen el mismo número de caracteres, por lo que las cadenas son iguales.It finds no inequalities and finds that the strings have the same number of characters, and so the strings are equal.

EjemploExample

// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;
CAtlString s1(_T("cat")), s2(_T("cats")), s3(_T("dogs"));

ASSERT(s1 < _T("dog"));
ASSERT(s1 < _T("cats"));
ASSERT(s2 < _T("cats and dogs"));
ASSERT(s2 < s3);   

CStringT::operator >CStringT::operator >

Determina si la cadena del lado izquierdo del operador es mayor que la cadena del lado derecho.Determines whether the string on the left side of the operator is greater than the string on the right side.

friend bool operator>(const CStringT& str1, const CStringT& str2) throw();
friend bool operator>(const CStringT& str1, PCXSTR psz2) throw();
friend bool operator>(PCXSTR psz1, const CStringT& str2) throw();

ParámetrosParameters

str1
CStringT Para la comparación.A CStringT for comparison.

str2
CStringT Para la comparación.A CStringT for comparison.

psz1
Puntero a una cadena terminada en null para la comparación.A pointer to a null-terminated string for comparison.

psz2
Puntero a una cadena terminada en null para la comparación.A pointer to a null-terminated string for comparison.

ComentariosRemarks

Una comparación lexicográfica entre cadenas, carácter a carácter hasta que:A lexicographical comparison between strings, character by character until:

  • Encuentra dos caracteres correspondientes distintos y el resultado de la comparación se toma como el resultado de la comparación entre las cadenas.It finds two corresponding characters unequal, and the result of their comparison is taken as the result of the comparison between the strings.

  • No encuentra ninguna desigualdad, pero una cadena tiene más caracteres que la otra y la cadena más corta se considera menor que la cadena más larga.It finds no inequalities, but one string has more characters than the other, and the shorter string is considered less than the longer string.

  • No encuentra ninguna desigualdad y encuentra que las cadenas tienen el mismo número de caracteres, por lo que las cadenas son iguales.It finds no inequalities and finds that the strings have the same number of characters, so the strings are equal.

EjemploExample

// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;
CAtlString s1(_T("cat")), s2(_T("cats")), s3(_T("dogs"));
ASSERT(_T("dog") > s1);
ASSERT(_T("cats") > s1);
ASSERT(_T("cats and dogs") > s2);
ASSERT(s3 > s2);   

CStringT::operator <=CStringT::operator <=

Determina si la cadena del lado izquierdo del operador es menor o igual que la cadena del lado derecho.Determines whether the string on the left side of the operator is less than or equal to the string on the right side.

friend bool operator<=(const CStringT& str1, const CStringT& str2) throw();
friend bool operator<=(const CStringT& str1, PCXSTR psz2) throw();
friend bool operator<=(PCXSTR psz1, const CStringT& str2) throw();

ParámetrosParameters

str1
CStringT Para la comparación.A CStringT for comparison.

str2
CStringT Para la comparación.A CStringT for comparison.

psz1
Puntero a una cadena terminada en null para la comparación.A pointer to a null-terminated string for comparison.

psz2
Puntero a una cadena terminada en null para la comparación.A pointer to a null-terminated string for comparison.

ComentariosRemarks

Una comparación lexicográfica entre cadenas, carácter a carácter hasta que:A lexicographical comparison between strings, character by character until:

  • Encuentra dos caracteres correspondientes distintos y el resultado de la comparación se toma como el resultado de la comparación entre las cadenas.It finds two corresponding characters unequal, and the result of their comparison is taken as the result of the comparison between the strings.

  • No encuentra ninguna desigualdad, pero una cadena tiene más caracteres que la otra y la cadena más corta se considera menor que la cadena más larga.It finds no inequalities, but one string has more characters than the other, and the shorter string is considered less than the longer string.

  • No encuentra ninguna desigualdad y encuentra que las cadenas tienen el mismo número de caracteres, por lo que las cadenas son iguales.It finds no inequalities and finds that the strings have the same number of characters, so the strings are equal.

EjemploExample

// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;
CAtlString s1(_T("cat")), s2(_T("cats")), s3(_T("dogs"));

ASSERT(s1 <= _T("dog"));
ASSERT(s1 <= _T("cat"));
ASSERT(s3 <= _T("dogs and cats"));
ASSERT(s2 <= s3);   

CStringT::operator >=CStringT::operator >=

Determina si la cadena del lado izquierdo del operador es mayor o igual que la cadena del lado derecho.Determines whether the string on the left side of the operator is greater than or equal to the string on the right side.

friend bool operator>=(const CStringT& str1, const CStringT& str2) throw();
friend bool operator>=(const CStringT& str1, PCXSTR psz2) throw();
friend bool operator>=(PCXSTR psz1, const CStringT& str2) throw();

ParámetrosParameters

str1
CStringT Para la comparación.A CStringT for comparison.

str2
CStringT Para la comparación.A CStringT for comparison.

psz1
Puntero a una cadena para la comparación.A pointer to a string for comparison.

psz2
Puntero a una cadena para la comparación.A pointer to a string for comparison.

ComentariosRemarks

Una comparación lexicográfica entre cadenas, carácter a carácter hasta que:A lexicographical comparison between strings, character by character until:

  • Encuentra dos caracteres correspondientes distintos y el resultado de la comparación se toma como el resultado de la comparación entre las cadenas.It finds two corresponding characters unequal, and the result of their comparison is taken as the result of the comparison between the strings.

  • No encuentra ninguna desigualdad, pero una cadena tiene más caracteres que la otra y la cadena más corta se considera menor que la cadena más larga.It finds no inequalities, but one string has more characters than the other, and the shorter string is considered less than the longer string.

  • No encuentra ninguna desigualdad y encuentra que las cadenas tienen el mismo número de caracteres, por lo que las cadenas son iguales.It finds no inequalities and finds that the strings have the same number of characters, so the strings are equal.

EjemploExample

// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;
CAtlString s1(_T("cat")), s2(_T("cats")), s3(_T("dogs"));

ASSERT(_T("dog") >= s1);
ASSERT(_T("cats and dogs") >= s2);
ASSERT(s3 >= s2);   

CStringT::RemoveCStringT::Remove

Quita todas las instancias del carácter especificado de la cadena.Removes all instances of the specified character from the string.

int Remove(XCHAR chRemove);

ParámetrosParameters

chRemove
Carácter que se va a quitar de una cadena.The character to be removed from a string.

Valor devueltoReturn Value

Recuento de caracteres que se han quitado de la cadena.The count of characters removed from the string. Cero si no se cambia la cadena.Zero if the string isn't changed.

ComentariosRemarks

Las comparaciones del carácter distinguen mayúsculas de minúsculas.Comparisons for the character are case-sensitive.

EjemploExample

// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;

CAtlString str(_T("This is a test."));
int n = str.Remove(_T('t'));
ASSERT(n == 2);
ASSERT(str == _T("This is a es."));   

CStringT::ReplaceCStringT::Replace

Hay dos versiones de Replace .There are two versions of Replace. La primera versión reemplaza una o más copias de una subcadena con otra subcadena.The first version replaces one or more copies of a substring by using another substring. Ambas subcadenas están terminadas en NULL.Both substrings are null-terminated. La segunda versión reemplaza una o más copias de un carácter mediante otro carácter.The second version replaces one or more copies of a character by using another character. Ambas versiones operan en los datos de caracteres almacenados en CStringT .Both versions operate on the character data stored in CStringT.

int Replace(PCXSTR pszOld, PCXSTR pszNew);
int Replace(XCHAR chOld, XCHAR chNew);

ParámetrosParameters

pszOld
Puntero a una cadena terminada en null que se va a reemplazar por pszNew .A pointer to a null-terminated string to be replaced by pszNew.

pszNew
Puntero a una cadena terminada en null que reemplaza a pszOld .A pointer to a null-terminated string that replaces pszOld.

chOld
Carácter que se va a reemplazar por chNew .The character to be replaced by chNew.

chNew
Carácter que reemplaza a chOld .The character replacing chOld.

Valor devueltoReturn Value

Devuelve el número de instancias reemplazadas del carácter o subcadena, o cero si no se cambia la cadena.Returns the number of replaced instances of the character or substring, or zero if the string isn't changed.

ComentariosRemarks

Replace puede cambiar la longitud de la cadena porque pszNew y pszOld no tienen que tener la misma longitud, y se pueden cambiar varias copias de la subcadena antigua a la nueva.Replace can change the string length because pszNew and pszOld don't have to be the same length, and several copies of the old substring can be changed to the new one. La función realiza una coincidencia que distingue entre mayúsculas y minúsculas.The function does a case-sensitive match.

Ejemplos de CStringT instancias son CString , CStringA y CStringW .Examples of CStringT instances are CString, CStringA, and CStringW.

Para CStringA , Replace trabaja con caracteres ANSI o multibyte (MBCS).For CStringA, Replace works with ANSI or multibyte (MBCS) characters. Para CStringW , Replace trabaja con caracteres anchos.For CStringW, Replace works with wide characters.

En CString , el tipo de datos de caracteres se selecciona en tiempo de compilación, en función de si se definen las constantes de la tabla siguiente.For CString, the character data type is selected at compile time, based on whether the constants in the following table are defined.

Constante definidaDefined Constant Tipo de datos de caracteresCharacter Data Type
_UNICODE Caracteres anchosWide characters
_MBCS Caracteres de varios bytesMulti-byte characters
NeitherNeither Caracteres de un solo byteSingle-byte characters
AmbosBoth No definidoUndefined

EjemploExample

// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;

CAtlString strBang(_T("Everybody likes epee fencing"));
int n = strBang.Replace(_T("epee"), _T("foil"));
ASSERT(n == 1);   

CStringT::ReverseFindCStringT::ReverseFind

Busca CStringT en este objeto la última coincidencia de un carácter.Searches this CStringT object for the last match of a character.

int ReverseFind(XCHAR ch) const throw();

ParámetrosParameters

ch
Carácter que se va a buscar.The character to search for.

Valor devueltoReturn Value

Índice de base cero del último carácter de este CStringT objeto que coincide con el carácter solicitado, o-1 si no se encuentra el carácter.The zero-based index of the last character in this CStringT object that matches the requested character, or -1 if the character isn't found.

ComentariosRemarks

La función es similar a la función en tiempo de ejecución strrchr .The function is similar to the run-time function strrchr.

EjemploExample

// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;

CAtlString s(_T("abcabc"));
ASSERT(s.ReverseFind(_T('b')) == 4);   

CStringT::RightCStringT::Right

Extrae los últimos caracteres (es decir, situados más nCount a la derecha) de este CStringT objeto y devuelve una copia de la subcadena extraída.Extracts the last (that is, rightmost) nCount characters from this CStringT object and returns a copy of the extracted substring.

CStringT Right(int nCount) const;

ParámetrosParameters

nCount
Número de caracteres que se van a extraer de este CStringT objeto.The number of characters to extract from this CStringT object.

Valor devueltoReturn Value

CStringT Objeto que contiene una copia del intervalo de caracteres especificado.A CStringT object that contains a copy of the specified range of characters. El objeto devuelto CStringT puede estar vacío.The returned CStringT object can be empty.

ComentariosRemarks

Si nCount supera la longitud de la cadena, se extrae toda la cadena.If nCount exceeds the string length, then the entire string is extracted. Right es similar a la Right función básica (salvo que los índices en Basic están basados en cero).Right is similar to the Basic Right function (except that indexes in Basic are zero-based).

En el caso de los juegos de caracteres multibyte (MBCS), nCount hace referencia a cada carácter de 8 bits; es decir, un byte inicial y final de un carácter multibyte se cuentan como dos caracteres.For multibyte character sets (MBCS), nCount refers to each 8-bit character; that is, a lead and trail byte in one multibyte character are counted as two characters.

EjemploExample

// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;

CAtlString s(_T("abcdef"));
ASSERT(s.Right(2) == _T("ef"));   

CStringT::SetSysStringCStringT::SetSysString

Reasigna el BSTR señalado por pbstr y copia en él el contenido del CStringT objeto, incluido el carácter nulo.Reallocates the BSTR pointed to by pbstr and copies the contents of the CStringT object into it, including the NULL character.

BSTR SetSysString(BSTR* pbstr) const;

ParámetrosParameters

pbstr
Puntero a una cadena de caracteres.A pointer to a character string.

Valor devueltoReturn Value

La nueva cadena.The new string.

ComentariosRemarks

Dependiendo del contenido del CStringT objeto, el valor de al BSTR que hace referencia pbstr puede cambiar.Depending on the contents of the CStringT object, the value of the BSTR referenced by pbstr can change. La función produce una excepción CMemoryException si no hay suficiente memoria.The function throws a CMemoryException if insufficient memory exists.

Esta función se utiliza normalmente para cambiar el valor de las cadenas que se pasan por referencia para la automatización.This function is normally used to change the value of strings passed by reference for Automation.

EjemploExample

BSTR bstr = ::SysAllocString(L"Golf is fun!");

// create a CAtlString and change the OLE
// string to the contents of the BSTR
// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;

CAtlString str(_T("Soccer is best!"));
BSTR bstr2 = str.SetSysString(&bstr);

// Now, both bstr and bstr2 reference a single instance of
// the "Soccer" string. The "Golf" string has been freed.
ASSERT(bstr2 == bstr);   

CStringT::SpanExcludingCStringT::SpanExcluding

Extrae los caracteres de la cadena, empezando por el primer carácter, que no están en el conjunto de caracteres identificados por pszCharSet .Extracts characters from the string, starting with the first character, that aren't in the set of characters identified by pszCharSet.

CStringT SpanExcluding(PCXSTR pszCharSet) const;

ParámetrosParameters

pszCharSet
Cadena interpretada como un conjunto de caracteres.A string interpreted as a set of characters.

Valor devueltoReturn Value

Una subcadena que contiene los caracteres de la cadena que no están en pszCharSet , empezando por el primer carácter de la cadena y terminando por el primer carácter que se encuentra en la cadena que también está en pszCharSet (es decir, empezando por el primer carácter de la cadena y hasta el primer carácter de la cadena que se encuentra, pero sin incluirlo pszCharSet ).A substring that contains characters in the string that aren't in pszCharSet, beginning with the first character in the string and ending with the first character found in the string that is also in pszCharSet (that is, starting with the first character in the string and up to but excluding the first character in the string that is found pszCharSet). Devuelve la cadena completa si no se encuentra ningún carácter en pszCharSet la cadena.It returns the entire string if no character in pszCharSet is found in the string.

ComentariosRemarks

SpanExcluding extrae y devuelve todos los caracteres que preceden a la primera aparición de un carácter de (es decir pszCharSet , pszCharSet no se devuelven el carácter de y todos los caracteres que lo siguen en la cadena).SpanExcluding extracts and returns all characters preceding the first occurrence of a character from pszCharSet (in other words, the character from pszCharSet and all characters following it in the string, aren't returned). Si no se encuentra ningún carácter de pszCharSet en la cadena, SpanExcluding devuelve la cadena completa.If no character from pszCharSet is found in the string, then SpanExcluding returns the entire string.

EjemploExample

// The string can be delimited by a semicolon(;),
//  a comma(,), a period(.), a dash(-),
// or an apostrophe(').
// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;

CAtlString src(_T("World Cup '98"));

_tprintf_s(_T("%s"),src.SpanExcluding(_T(";,.-'")));

CStringT::SpanIncludingCStringT::SpanIncluding

Extrae los caracteres de la cadena, empezando por el primer carácter, que se encuentran en el conjunto de caracteres identificados por pszCharSet .Extracts characters from the string, starting with the first character, that are in the set of characters identified by pszCharSet.

CStringT SpanIncluding(PCXSTR pszCharSet) const;

ParámetrosParameters

pszCharSet
Cadena interpretada como un conjunto de caracteres.A string interpreted as a set of characters.

Valor devueltoReturn Value

Una subcadena que contiene los caracteres de la cadena que están en pszCharSet , empezando por el primer carácter de la cadena y terminando cuando se encuentra un carácter en la cadena que no está en pszCharSet .A substring that contains characters in the string that are in pszCharSet, beginning with the first character in the string and ending when a character is found in the string that isn't in pszCharSet. SpanIncluding Devuelve una subcadena vacía si el primer carácter de la cadena no está en el conjunto especificado.SpanIncluding returns an empty substring if the first character in the string isn't in the specified set.

ComentariosRemarks

Si el primer carácter de la cadena no está en el juego de caracteres, SpanIncluding devuelve una cadena vacía.If the first character of the string isn't in the character set, then SpanIncluding returns an empty string. De lo contrario, devuelve una secuencia de caracteres consecutivos que se encuentran en el conjunto.Otherwise, it returns a sequence of consecutive characters that are in the set.

EjemploExample

// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;

CAtlString str(_T("cabbage"));
CAtlString res = str.SpanIncluding(_T("abc"));
ASSERT(res == _T("cabba"));
res = str.SpanIncluding(_T("xyz"));
ASSERT(res.IsEmpty());   

CStringT::TokenizeCStringT::Tokenize

Busca el siguiente token en una cadena de destino.Finds the next token in a target string

CStringT Tokenize(PCXSTR pszTokens, int& iStart) const;

ParámetrosParameters

pszTokens
Cadena que contiene los delimitadores de token.A string containing token delimiters. No es importante el orden de estos delimitadores.The order of these delimiters isn't important.

iStart
Índice de base cero en el que se va a iniciar la búsqueda.The zero-based index to begin the search.

Valor devueltoReturn Value

CStringT Objeto que contiene el valor del token actual.A CStringT object containing the current token value.

ComentariosRemarks

La Tokenize función busca el token siguiente en la cadena de destino.The Tokenize function finds the next token in the target string. El conjunto de caracteres de pszTokens especifica los delimitadores posibles del token que se va a buscar.The set of characters in pszTokens specifies possible delimiters of the token to be found. En cada llamada a Tokenize la función comienza en iStart , omite los delimitadores iniciales y devuelve un CStringT objeto que contiene el token actual, que es la cadena de caracteres hasta el siguiente carácter delimitador.On each call to Tokenize the function starts at iStart, skips leading delimiters, and returns a CStringT object containing the current token, which is the string of characters up to the next delimiter character. El valor de iStart se actualiza para que sea la posición que sigue al carácter delimitador final o-1 si se alcanzó el final de la cadena.The value of iStart is updated to be the position following the ending delimiter character, or -1 if the end of the string was reached. Se pueden separar más tokens del resto de la cadena de destino mediante una serie de llamadas a Tokenize , utilizando iStart para realizar un seguimiento de dónde se leerá el siguiente token en la cadena.More tokens can be broken out of the rest of the target string by a series of calls to Tokenize, using iStart to keep track of where in the string the next token is to be read. Cuando no hay más tokens, la función devolverá una cadena vacía y se iStart establecerá en-1.When there are no more tokens, the function will return an empty string and iStart will be set to -1.

A diferencia de las funciones de símbolo (token) de CRT como strtok_s, _strtok_s_l, wcstok_s, _wcstok_s_l, _mbstok_s, _mbstok_s_l , Tokenize no modifica la cadena de destino.Unlike the CRT tokenize functions like strtok_s, _strtok_s_l, wcstok_s, _wcstok_s_l, _mbstok_s, _mbstok_s_l, Tokenize doesn't modify the target string.

EjemploExample

// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;
CAtlString str(_T("%First Second#Third"));
CAtlString resToken;
int curPos = 0;

resToken= str.Tokenize(_T("% #"),curPos);
while (resToken != _T(""))
{
   _tprintf_s(_T("Resulting token: %s\n"), resToken);
   resToken = str.Tokenize(_T("% #"), curPos);
};   

La salida de este ejemplo es la siguiente:The output from this example is as follows:

Resulting Token: First
Resulting Token: Second
Resulting Token: Third

CStringT::TrimCStringT::Trim

Recorta los caracteres iniciales y finales de la cadena.Trims leading and trailing characters from the string.

CStringT& Trim(XCHAR chTarget);
CStringT& Trim(PCXSTR pszTargets);
CStringT& Trim();

ParámetrosParameters

chTarget
Carácter de destino que se va a recortar.The target character to be trimmed.

pszTargets
Puntero a una cadena que contiene los caracteres de destino que se van a recortar.A pointer to a string containing the target characters to be trimmed. Todas las apariciones iniciales y finales de los caracteres de pszTargets se recortarán del CStringT objeto.All leading and trailing occurrences of characters in pszTargets will be trimmed from the CStringT object.

Valor devueltoReturn Value

Devuelve la cadena recortada.Returns the trimmed string.

ComentariosRemarks

Quita todas las apariciones iniciales y finales de una de las siguientes opciones:Removes all leading and trailing occurrences of one of the following:

  • Carácter especificado por chTarget .The character specified by chTarget.

  • Todos los caracteres que se encuentran en la cadena especificada por pszTargets .All characters found in the string specified by pszTargets.

  • Eran.Whitespace.

EjemploExample

// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;

CAtlString str;
str = _T("******Soccer is best!?!?!?!?!");

_tprintf_s(_T("Before: \"%s\"\n"), (LPCTSTR)str);
_tprintf_s(_T("After : \"%s\"\n"), (LPCTSTR)str.Trim(_T("?!*")));

// Output:
// --------------------------
// Before: ******Soccer is best!?!?!?!?!
// After: Soccer is best

La salida de este ejemplo es la siguiente:The output from this example is as follows:

Before: "******Soccer is best, but liquor is quicker!!!!!"
After : "Soccer is best, but liquor is quicker"

CStringT::TrimLeftCStringT::TrimLeft

Recorta los caracteres iniciales de la cadena.Trims leading characters from the string.

CStringT& TrimLeft(XCHAR chTarget);
CStringT& TrimLeft(PCXSTR pszTargets);
CStringT& TrimLeft();

ParámetrosParameters

chTarget
Carácter de destino que se va a recortar.The target character to be trimmed.

pszTargets
Puntero a una cadena que contiene los caracteres de destino que se van a recortar.A pointer to a string containing the target characters to be trimmed. Todas las apariciones iniciales de caracteres de pszTargets se recortarán del CStringT objeto.All leading occurrences of characters in pszTargets will be trimmed from the CStringT object.

Valor devueltoReturn Value

Cadena recortada resultante.The resulting trimmed string.

ComentariosRemarks

Quita todas las apariciones iniciales y finales de una de las siguientes opciones:Removes all leading and trailing occurrences of one of the following:

  • Carácter especificado por chTarget .The character specified by chTarget.

  • Todos los caracteres que se encuentran en la cadena especificada por pszTargets .All characters found in the string specified by pszTargets.

  • Eran.Whitespace.

EjemploExample

// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;

CAtlString str;
str = _T("\t\t   ****Soccer is best!");

_tprintf_s(_T("Before: \"%s\"\n"), (LPCTSTR)str);
_tprintf_s(_T("After: \"%s\"\n"), (LPCTSTR)str.TrimLeft(_T("\t *")));

// Output:
// --------------------------
// Before:     ****Soccer is best!
// After: Soccer is best!

CStringT::TrimRightCStringT::TrimRight

Recorta los caracteres finales de la cadena.Trims trailing characters from the string.

CStringT& TrimRight(XCHAR chTarget);
CStringT& TrimRight(PCXSTR pszTargets);
CStringT& TrimRight();

ParámetrosParameters

chTarget
Carácter de destino que se va a recortar.The target character to be trimmed.

pszTargets
Puntero a una cadena que contiene los caracteres de destino que se van a recortar.A pointer to a string containing the target characters to be trimmed. Todas las apariciones de caracteres finales de pszTargets se eliminarán del CStringT objeto.All trailing occurrences of characters in pszTargets will be trimmed from the CStringT object.

Valor devueltoReturn Value

Devuelve el CStringT objeto que contiene la cadena recortada.Returns the CStringT object that contains the trimmed string.

ComentariosRemarks

Quita las apariciones finales de uno de los siguientes elementos:Removes trailing occurrences of one of the following:

  • Carácter especificado por chTarget .The character specified by chTarget.

  • Todos los caracteres que se encuentran en la cadena especificada por pszTargets .All characters found in the string specified by pszTargets.

  • Eran.Whitespace.

La CStringT& TrimRight(XCHAR chTarget) versión acepta un parámetro de carácter y quita todas las copias de ese carácter del final de los CStringT datos de cadena.The CStringT& TrimRight(XCHAR chTarget) version accepts one character parameter and removes all copies of that character from the end of CStringT string data. Comienza desde el final de la cadena y funciona hacia delante.It starts from the end of the string and works toward the front. Se detiene cuando encuentra un carácter diferente o cuando CStringT se queda sin datos de caracteres.It stops when it finds a different character or when CStringT runs out of character data.

La CStringT& TrimRight(PCXSTR pszTargets) versión acepta una cadena terminada en null que contiene todos los caracteres que se van a buscar.The CStringT& TrimRight(PCXSTR pszTargets) version accepts a null-terminated string that contains all the different characters to search for. Quita todas las copias de esos caracteres en el CStringT objeto.It removes all copies of those characters in the CStringT object. Se inicia al final de la cadena y funciona hacia delante.It starts at the end of the string and works toward the front. Se detiene cuando encuentra un carácter que no está en la cadena de destino, o cuando CStringT se agotan los datos de caracteres.It stops when it finds a character that isn't in the target string, or when CStringT runs out of character data. No intenta hacer coincidir la cadena de destino completa con una subcadena al final de CStringT .It doesn't try to match the whole target string to a substring at the end of CStringT.

La CStringT& TrimRight() versión no requiere ningún parámetro.The CStringT& TrimRight() version requires no parameters. Recorta los caracteres de espacio en blanco finales del final de la CStringT cadena.It trims any trailing whitespace characters from the end of the CStringT string. Los caracteres de espacio en blanco pueden ser saltos de línea, espacios o tabulaciones.Whitespace characters can be line breaks, spaces, or tabs.

EjemploExample

// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;

CAtlString str;
str = _T("Soccer is best!?!?!?!?!");

_tprintf_s(_T("Before: \"%s\"\n"), (LPCTSTR)str);
_tprintf_s(_T("After : \"%s\"\n"), (LPCTSTR)str.TrimRight(_T("?!")));

// Output:
// --------------------------
// Before: Soccer is best!?!?!?!?!
// After: Soccer is best

Vea tambiénSee also

Gráfico de jerarquíaHierarchy Chart
Clases compartidas de ATL/MFCATL/MFC Shared Classes
Clase CSimpleStringTCSimpleStringT Class