Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Este tópico explica as seguintes operações básicas de CString :
Class CString baseia-se no modelo CStringTde classe.
CString é um typedef dos CStringT. Mais exatamente, CString é uma typedefespecialização explícita de , que é uma maneira comum de usar um modelo de CStringTclasse para definir uma classe. Classes igualmente definidas são CStringA e CStringW.
CString, CStringAe CStringW são definidos em atlstr.h.
CStringT é definido em cstringt.h.
CString, CStringAe CStringW cada um obtém um conjunto de métodos e operadores definidos por CStringT para uso com os dados de cadeia de caracteres suportados. Alguns dos métodos duplicam e, em alguns casos, superam os serviços de cadeia de caracteres das bibliotecas de tempo de execução C.
Nota: CString é uma classe nativa. Para uma classe de cadeia de caracteres que é para uso em um projeto gerenciado C++/CLI, use System.String.
Criando objetos CString a partir de cadeias de caracteres literais C padrão
Você pode atribuir cadeias de caracteres literais no estilo C a um CString da mesma forma que pode atribuir um CString objeto a outro.
Atribua o valor de uma cadeia de caracteres literal C a um
CStringobjeto.CString myString = _T("This is a test");Atribua o valor de um
CStringa outroCStringobjeto.CString oldString = _T("This is a test"); CString newString = oldString;O conteúdo de um
CStringobjeto é copiado quando umCStringobjeto é atribuído a outro. Portanto, as duas cadeias de caracteres não compartilham uma referência aos caracteres reais que compõem a cadeia de caracteres. Para obter mais informações sobre como usarCStringobjetos como valores, consulte Semântica CString.Observação
Para escrever seu aplicativo para que ele possa ser compilado para Unicode ou para ANSI, codifice cadeias de caracteres literais usando a macro _T. Para obter mais informações, consulte Suporte a Unicode e MBCS (Multibyte Character set).
Acessando caracteres individuais em um CString
Você pode acessar caracteres individuais em um CString objeto usando os GetAt métodos and SetAt . Você também pode usar o elemento de matriz, ou subscrito, operador ( [ ] ) em vez de GetAt para obter caracteres individuais. (Isso se assemelha a acessar elementos de matriz por índice, como em cadeias de caracteres padrão no estilo C.) Os valores de índice para CString caracteres são baseados em zero.
Concatenando dois objetos CString
Para concatenar dois CString objetos, use os operadores de concatenação (+ ou +=), da seguinte maneira.
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".
Pelo menos um argumento para os operadores de concatenação (+ ou +=) deve ser um CString objeto, mas você pode usar uma cadeia de caracteres constante (por exemplo, "big") ou um char (por exemplo, 'x') para o outro argumento.
Comparando objetos CString
O Compare método e o operador == para CString são equivalentes.
Compare, operador==, e CompareNoCase estão cientes de MBCS e Unicode; CompareNoCase também não diferencia maiúsculas de minúsculas. O Collate método de CString é sensível à localidade e geralmente é mais lento do que Compare. Use Collate somente onde você deve cumprir as regras de classificação, conforme especificado pela localidade atual.
A tabela a seguir mostra as funções de comparação CString disponíveis e suas funções equivalentes portáteis Unicode/MBCS na biblioteca de tempo de execução C.
| Função CString | Função MBCS | Função Unicode |
|---|---|---|
Compare |
_mbscmp |
wcscmp |
CompareNoCase |
_mbsicmp |
_wcsicmp |
Collate |
_mbscoll |
wcscoll |
O CStringT modelo de classe define os operadores relacionais (<, <=, >=, >, ==, e !=), que estão disponíveis para uso pelo CString. Você pode comparar dois CStrings usando esses operadores, conforme mostrado no exemplo a seguir.
CString s1(_T("Tom"));
CString s2(_T("Jerry"));
ASSERT(s2 < s1);
Convertendo objetos CString
Para obter informações sobre como converter objetos CString em 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 para um const wchar_t* como mostrado no exemplo a seguir:
CString cs("meow");
wcout << (const wchar_t*) cs << endl;
Sem o elenco, cs é tratado como um void* e wcout imprime o endereço do objeto. Esse comportamento é causado por interações sutis entre dedução de argumento de modelo e resolução de sobrecarga que são, por si só, corretas e conformes com o padrão C++.
Ver também
Strings (ATL/MFC)
Classe CStringT
Especialização de modelos
Como: Converter entre vários tipos de cadeia de caracteres