Como abrir espaço para amplas cadeias de caracteres em c ++

programador do C ++ é muitas vezes necessária para manipular cadeias de caracteres largos. A biblioteca padrão C ++ inclui funções para lidar com cadeias de caracteres largos. Algumas dessas funções estão listadas nesta tabela.

Funções de grande manipulação de strings
NomeOperação
int wcslen (string)Retorna o número de caracteres largos em uma corda, não
incluindo o nulo de terminação.
wchar_t * wcscpy (alvo, fonte)Cópias do grande cadeia de origem para uma matriz de destino.
wchar_t * wcscat (alvo, fonte)Encadeia a cadeia vasta fonte na extremidade do alvo
ampla string.
wchar_t * wcsncpy (alvo, fonte,
n)
Cópias uma grande corda até n
caracteres da cadeia de origem para uma matriz de destino.
wchar_t * wcsncat (alvo, fonte,
n)
Encadeia a cadeia de origem na extremidade do alvo
string ou n caracteres, o que ocorrer
primeiro.
wchar_t * wcsstr (string, padrão)Encontra o endereço da primeira ocorrência do padrão na string.
Retorna um valor nulo se o padrão não foi encontrado.
int wcscmp (source1, source2)Compara duas seqüências de largura. Retorna -1 se source1 ocorre antes source2 no dicionário e 1 se mais tarde.
Retorna 0 se as duas cordas corresponder exatamente.
int wcsncmp (source1, source2,
n)
Compara o primeiro n caracteres largos
em duas cordas de largura.

Lembre-se que caracteres largos são usados ​​para aplicações que devem suportar línguas estrangeiras, onde míseros 255 caracteres diferentes podem não ser o suficiente.

Video: Processamento de Cadeia de Caracteres

A seguir mostra uma versão de caracteres largos da Concatenar programa:

// ConcatenateWide - concatenar duas cadeias de largura // com um " - " no meio usando rotinas de biblioteca # include #incluir #incluir using namespace std-int main (int nNumberofArgs, char * pszArgs []) {// leia primeira corda ... wchar_t wszString1 [260] -cout lt; lt; "Digite string # 1:"-wcin.getline (wszString1, 128) - // ... agora a segunda corda ... wchar_t wszString2 [128] -cout lt; lt; "Digite seqüência # 2:"-wcin.getline (wszString2, 128) - // agora aderência do segundo para o final do primeiro // com um traço no betweenwcsncat (wszString1, L" - ", 260) -wcsncat (wszString1, wszString2, 260) -wcout lt; lt; eu"n" lt; lt; wszString1 lt; lt; endl - // espera até que o usuário está pronto antes de terminar o programa // para permitir que o usuário veja o resultscout programa lt; lt; "Pressione Enter para continuar ..." lt; lt; endl-cin.ignore (10, `n`) - cin.get () - 0-} retornar

O amplo programa de cadeia de caracteres é semelhante ao seu de byte único primo cadeia de caracteres, exceto para as seguintes diferenças:



Variáveis ​​são declaradas wchar_t ao invés de Caracteres.

  • caracteres constantes e strings constantes ser precedida de uma EU, como em L “Esta é uma grande cadeia”.

    Video: Curso de C++ - Aula 16 - Vetores de caracteres strings

  • os objetos wcin e wcout são usadas no lugar de cin e cout para entrada e saída.

    Video: aula23 - Strings ou cadeias de caracteres

  • o wcs ... funções aparecer no lugar da estreita str ... funções.

  • A saída a partir de ConcatenateWide parece ser idêntica à do Caracteres-Sediada Concatenar programa para aqueles que fazem a maior parte de sua entrada / saída em línguas europeias. O tópico de escrever programas capazes de lidar com vários idiomas com alfabetos diferentes e regras de gramática é conhecido como localização.

    ANSI C ++ inclui um tipo corda projetado para tornar mais fácil para manipular cadeias de texto.


    Publicações relacionadas