Colección de citas famosas - Diccionario de frases chinas - Estructura de datos CString de MFC

Estructura de datos CString de MFC

Es más similar a StringBuilder en Java y no es un objeto inmutable como String en Java. CString utiliza almacenamiento secuencial. El código fuente está compilado condicionalmente y no es legible.

Clase CString

{

Público:

//Constructor

//Construye un CString vacío

CString();

//Copiar constructor

CString(const CString & amp; string src);

// desde a carácter único

CString(TCHAR ch, int nRepeat = 1);

//Convertir de cadena ANSI (convertir a TCHAR)

CString(LPCSTR lpsz) ;

//Convertir de cadena UNICODE (convertir a TCHAR)

CString(LPCWSTR lpsz);

Un subconjunto de caracteres en cadena ANSI (convertido a TCHAR )

CString(LPCSTR lpch, int nLength);

//Subconjunto de caracteres en cadena UNICODE (convertido a TCHAR)

CString(LPCWSTR lpch, int nLength);

//De unsigned char

CString(const unsigned char * PSZ);

//Propiedades y operación de amplificador

//Obtener la longitud de los datos

int GetLength()const;

//Si la longitud es cero, es VERDADERO

BOOL IsEmpty()const ;

//Vaciar el contenido

void Vacuum();

//Devuelve un solo carácter en el índice de base cero

p>

TCHAR GetAt(int nIndex)const;

//Devuelve un solo carácter en un índice comenzando desde cero

TCHAR operator[](int nIndex)const; >

//Establece un solo carácter en un índice de base cero

void SetAt(int nIndex, TCHAR ch);

//Devuelve un puntero a una cadena constante Puntero

Operador LPCTSTR()const;

//Asignación sobrecargada

//Copia del recuento de referencias de otro CString

const CString & amp operator =(const CString & amp; string src);

//Establece el contenido de la cadena en un solo carácter

const CString & amp operator=(TCHAR ch);

#ifdef _UNICODE

const CString & ampoperator =(char ch);

#endif

//De cadena ANSI copiar contenido de cadena ( convertir a TCHAR)

const CString & ampoperator =(LPCSTR lpsz);

//Copiar el contenido de la cadena de la cadena UNICODE (convertir a TCHAR)

const CString & ampoperator =(LPCWSTR lpsz);

//Copiar contenido de cadena de caracteres sin firmar

const CString & ampoperator=( const unsigned char * PSZ);

//Concatenación de cadenas

//Concatenación desde otro CString

const CString & amp operator +=(const CString & string);

//

Concatenar un carácter

const CString & amp operator +=(TCHAR ch);

#ifdef _UNICODE

//Después de convertir caracteres ANSI a TCHAR Conéctalos

const CString & amp operator +=(char ch);

#endif

//Después de convertir caracteres UNICODE a TCHAR, concatenarlos

const CString & operador +=(LPCTSTR lpsz);

amigo CString operador AFXAPI +(const CString & string1,

const CString & ampstring 2);

amigo operador CString AFXAPI + (const CString & amp; string, TCHAR ch

TCHAR ch, const CString & ampstring);

#ifdef _UNICODE

operador amigo CString AFXAPI + (const CString y cadena, char ch);

operador amigo CString AFXAPI + (char ch, const CString y cadena

#endif

operador amigo CString AFXAPI + (const CString y cadena, LPCTSTR lpsz

operador amigo CString AFXAPI + (LPCTSTR lpsz, const CString y cadena amp);

//Comparación de cadenas

//Comparación directa de caracteres

int Compare(LPCTSTR lpsz)const;

//La comparación ignora mayúsculas y minúsculas

int compare nocase(LPCTSTR lpsz)const;

// Comparación compatible con NLS, distingue entre mayúsculas y minúsculas

int Collate(LPCTSTR lpsz)const;

// NLS -comparación que reconoce, no distingue entre mayúsculas y minúsculas

int CollateNoCase(LPCTSTR lpsz) const;

//Extracción de subcadenas simple

//Devuelve nCount caracteres comenzando desde cero

CString Mid(int nFirst, int n count) const;

//Devuelve todos los caracteres empezando desde cero

CString Mid(int nFirst)const;

//Devuelve los primeros nCount caracteres en la cadena Character

CString Left(int nCount)const;

//Devuelve nCount caracteres desde el final de la cadena

c string Right(int nCount)const;

//El carácter inicial también está en la cadena pasada

CString span include(LPCTSTR lpszCharSet)const;

//No en la cadena pasada El carácter inicial de

CString span excluyendo(LPCTSTR lpszCharSet)const;

//Conversión arriba/abajo/inversa

// Conversión compatible con NLS a mayúsculas

void make lower

();

// Conversión de minúsculas compatible con NLS

void MakeLower

//Invierte la cadena de derecha a izquierda

void make reverse();

//Recortar espacios en blanco (cualquier lado)

//Eliminar espacios en blanco comenzando desde el borde derecho

void trim right( );

//Eliminar espacios en blanco comenzando desde la izquierda

void trim left();

//Recorta cualquier cosa (cualquier lado)

/ /Eliminar chTargets consecutivos comenzando desde la derecha

TrimRight no válido (objetivo TCHAR);

//Eliminar caracteres consecutivos en la cadena pasada,

//Comenzar desde la derecha

void trim right(LPCTSTR lpsz target);

//Eliminar chTargets consecutivos comenzando desde la izquierda

TrimLeft no válido (objetivo TCHAR);

//Eliminar caracteres consecutivos en

//La cadena pasada, comenzando desde la izquierda

void trim left(LPCTSTR lpsz objetivos);

//Operaciones avanzadas

//Reemplazar el número de apariciones de chOld con chNew

int Reemplazo(TCHAR·Child, TCHAR·Chinew);

/ /Reemplazar el número de apariciones de la subcadena lpszOld con lpszNew;

//empty lpszNew elimina instancias de lpszOld

int Reemplazar(LPCTSTR lpszOld, LPCTSTR lpszNew);

//Eliminar la aparición de chRemove

int Remove(TCHAR·Kremov);

//In Insertar caracteres en índice de base cero encadenados

//Si el índice excede el final de la cadena

int Insert(int nIndex, TCHAR ch);

//Insertar subcadena en el índice de base cero encadenado

//Si el índice excede el final de la cadena

int Insert(int nIndex, LPCTSTR pstr);

//Elimina nCount caracteres a partir del índice de base cero

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

// Buscar

//Busca caracteres comenzando desde la izquierda, si no los encuentra, es -1

int Find (canal TCHAR) const

//Buscar caracteres comenzando desde la derecha

int ReverseFind(canal TCHAR) constante;

//Buscar caracteres que comiencen desde cero y vayan hacia la derecha

int Find(TCHAR ch, int nStart)const;

//Encuentre la primera instancia de cualquier carácter en la cadena pasada

int FindOneOf(LPCTSTR lpszCharSet)const;

/ /Encuentra la primera instancia de una subcadena

int Find(LPCTSTR lpszSub)const;

//Encuentra la primera instancia de una subcadena en un índice de base cero

int Find(LPCTSTR lpszSub, int nStart) const;

//Simple format

//Utilice la cadena pasada para un formato similar a printf

formato void AFX_CDECL (LPCTSTR lpszFormat,...);

<

p>//Utilice recursos de cadenas entre comillas para formato similar a printf

formato void AFX_CDECL (UINT nFormatID,...);

//Utilice formato de formato printf de parámetro variable

void FormatV(LPCTSTR lpszFormat, va_list argList);

//Formato localizado (usando la API FormatMessage)

//Par de caracteres pasados ​​La cadena se formatea usando FormatMessage API

void AFX _ CDECL format message(LPCTSTR lpszFormat,...);

//Formateo usando la API FormatMessage en el recurso de cadena referenciado

void Mensaje en formato AFX _ CDECL(UINT informatid,...);

//Entrada y salida

#ifdef _DEBUG

amigo CDumpContext & operador ampAFXAPI& lt& lt (CDumpContext y ampdc,

const CString y amp string

#endif

Perfil de amigo y operador ampAFXAPI y lt& lt(Archivo y ampar, const CString); & amp string);

Archivo de amigos y operador ampAFXAPI & gt& gt(Archivo & ampar, CString & amp string

// Cargando desde recursos de cadena

BOOL LoadString(UINT nID);

#ifndef _UNICODE

//ANSI & lt;-& gt ;Soporte OEM (convertir cadena en su lugar)

//Convierte una cadena de ANSI a OEM in situ

void AnsiToOem();

// Convierte una cadena de OEM a ANSI in situ

void OemToAnsi();

#endif

# IFN def _AFX_NO_BSTR_Supported

// Compatibilidad con OLE BSTR (para automatización OLE)

/ /Devuelve un BSTR inicializado con los datos de este CString

Constante BSTR AllocSysString();

// p>

//Reasigna el BSTR pasado y copia el contenido de este CString en él

BSTR SetSysString(BSTR* pbstr) constante;

#endif

//Acceda al búfer de implementación de cadenas como una matriz de caracteres "C"

//Obtener un puntero a un búfer modificable que sea al menos tan largo como nMinBufLength

LPTSTR get buffer(int nMinBufLength);

//Liberar el búfer y establezca la longitud en nNewLength (si -1, configúrelo en el primer nul)

void release buffer(int nnew length =-1);

//Obtenga el puntero a el buffer modificable, la longitud es exactamente igual a nNewLength

LPTSTR GetBufferSetLength(int nnew length);

//Libera la memoria no utilizada asignada a la cadena

void free extra();

//Usar LockBuffer/UnlockBuff

erClose refcounting

//Reabrir el recuento de referencias

LPTSTR lock buffer();

//Cerrar el recuento de referencias

desbloqueo nulo buffer();

//Implementación

Público:

~ CString();

int GetAllocLength()const;

p>

Protegido:

LPTSTR m _ pchData//Puntero para hacer referencia a datos de cadena contados

//Asistente de implementación

CStringData * obtener datos() const;

void Init();

void allocopy(CString & dest, int nCopyLen, int nCopyIndex, int nExtraLen)

void alloc buffer(int nLen);

void AssignCopy(int nSrcLen, LPCTSTR lpszSrcData);

void concat copy(int nsrc 1 len, LPCTSTR lpszSrc1Data, int nSrc2Len, LPCTSTR lpszsrc 2 datos);

void ConcatInPlace(int nSrcLen, LPCTSTR lpszSrcData);

void copy before write();

void AllocBeforeWrite(int nLen);

liberación vacía();

liberación PASCAL vacía estática (CStringData * pData);

estática int PASCAL segura strlen(LPCTSTR lpsz);

llamada rápida estática y nula FreeData(CStringData * pData);

};