Compartilhar via


Operações básicas de CString

Este tópico explica as seguintes operações básicas de CString :

  • Criando objetos de CString de cadeias de caracteres literal padrões de C

  • Acessando caracteres individuais em um CString

  • Concatenando dois objetos de CString

  • Comparando objetos de CString

  • Convertendo objetos de CString

Class CString é baseado no modelo Classe de CStringTda classe.CString é typedef de CStringT.Mais precisamente, CString é typedefde uma especialização explícita de CStringT, que é uma maneira comum de usar um modelo da classe para definir uma classe.As classes da mesma forma são definidas CStringA e CStringW.Para obter mais informações sobre a especialização explícita, consulte Instanciação de modelo de classe.

CString, CStringA, e CStringW são definidos em atlstr.h.CStringT é definido em cstringt.h.

CString, CStringA, e cada um CStringW obtém um conjunto de métodos e dos operadores definido por CStringT para uso com os dados de cadeia de caracteres suporta.Qualquer duplicadas dos métodos e, em alguns casos, ultrapassa os serviços de cadeia de caracteres das bibliotecas em tempo de execução de C.

Observação: CString é uma classe nativo.Para uma classe de cadeia de caracteres que é para uso no projeto gerenciado ++/CLI de energia AC, use System.String.

Criando objetos de CString de cadeias de caracteres literal padrões de C

Você pode atribuir cadeias de caracteres literais ctype -- estilo a CString assim como você pode atribuir um objeto de CString para outro.

  • Atribua o valor da cadeia de caracteres literal de energia AC a um objeto de CString .

    CString myString = _T("This is a test");   
    
  • Atribua o valor de um CString a outro objeto de CString .

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

    O conteúdo de um objeto de CString são copiados quando um objeto de CString é atribuído ao outro.Portanto, as duas cadeias de caracteres não compartilham uma referência para caracteres reais que compõem a cadeia de caracteres.Para obter mais informações sobre como usar objetos de CString como valores, consulte Semântica de CString.

    ObservaçãoObservação

    Para escrever seu aplicativo para que ele pode ser compilado para ANSI, Unicode ou para cadeias de caracteres literais de código usando a macro de _T.Para mais informações, consulte suporte Unicode e do conjunto de caracteres de Multibyte (MBCS).

Acessando caracteres individuais em um CString

Você pode acessar caracteres individuais em um objeto de CString usando os métodos e de GetAt de SetAt .Você também pode usar o elemento da matriz, ou subscrito, o operador ([ ]) em vez de GetAt para obter caracteres individuais.(Isso se assemelha a acessar elementos pelo índice de matriz, como em cadeias de caracteres de estilo -- C.) Os valores de índice de caracteres de CString são baseados em zero.

Concatenando dois objetos de CString

Para concatenar dois objetos de CString , use os operadores de concatenação (+) ou +=, como segue.

CString s1 = _T("This ");        // Cascading concatenation
s1 += _T("is a ");
CString s2 = _T("test");
CString message = s1 + _T("big ") + s2;  
// Message contains "This is a big test".

Por o menos um argumento para os operadores de concatenação (+) ou += deve ser um objeto de CString , mas você pode usar uma cadeia de caracteres constante (por exemplo, "big") ou um char (por exemplo, “x ") para o outro argumento.

Comparando objetos de CString

O método de Compare e o operador de == para CString são equivalentes.Compare, operator==, e CompareNoCase são MBCS e Unicode cientes; CompareNoCase também é não diferencia maiúsculas de minúsculas.O método de Collate de CString é sensível e são geralmente é mais lento do que Compare.Use Collate apenas onde você deve seguir as regras de classificação conforme especificado pela localidade atual.

A tabela a seguir mostra as funções disponíveis de comparação de CString e suas funções do equivalente Unicode/MBCS-portable na biblioteca em tempo de execução de C.

Função de CString

função MBCS

Função Unicode

Compare

_mbscmp

wcscmp

CompareNoCase

_mbsicmp

_wcsicmp

Collate

_mbscoll

wcscoll

O modelo de classe de CStringT define os operadores relacionais (<, <=, >=, >, ==, e! =), que estão disponíveis para uso de CString.Você pode comparar dois CStrings usando esses operadores, conforme mostrado no exemplo o seguir.

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

Convertendo objetos de CString

Para obter informações sobre como converter objetos de CString a outros tipos de cadeia de caracteres, consulte Como: converter entre vários tipos de cadeia de caracteres.

Usando CString com wcout

Para usar um CString com wcout você deve converter explicitamente o objeto a const wchar_t* conforme mostrado no exemplo o seguir:

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

Sem a conversão, cs é tratado como void* e wcout imprimem o endereço do objeto.Esse comportamento é causado pelas interações entre a sutis dedução do argumento do modelo e a resolução de sobrecarga que estão em se corretos e conformes com o padrão C++.

Consulte também

Referência

Classe de CStringT

Instanciação de modelo de classe

Especialização explícita de modelos de classe

Especialização parcial de modelos de classe (C++)

Conceitos

Como: converter entre vários tipos de cadeia de caracteres

Outros recursos

Cadeias de caracteres (ATL/MFC)