Cómo hacer espacio para amplios cadenas en c ++

El programador de C ++ es a menudo necesaria para manipular cadenas de caracteres anchos. La biblioteca estándar de C ++ incluye funciones para manejar cadenas de caracteres anchos. Algunas de estas funciones se enumeran en esta tabla.

Funciones de ancho de manejo de series
NombreOperación
int wcslen (cadena)Devuelve el número de caracteres anchos en una cadena, no
incluyendo el nulo de terminación.
wchar_t * wcscpy (diana, fuente)Copias de la amplia cadena de origen en una matriz de destino.
wchar_t * wcscat (diana, fuente)Concatena los amplia cadena de origen en el extremo del objetivo
amplia cadena.
wchar_t * wcsncpy (diana, fuente,
norte)
Copias de una amplia cadena de hasta norte
personajes de la cadena de origen en una matriz de destino.
wchar_t * wcsncat (diana, fuente,
norte)
Concatena la cadena de origen en el extremo del objetivo
cuerda o norte caracteres, lo que ocurra
primero.
wchar_t * wcsspn (cadena, patrón)Se encuentra la dirección de la primera ocurrencia del patrón en cadena.
Devuelve un valor nulo si no se encuentra patrón.
int wcscmp (Source1, source2)Compara dos cadenas de ancho. Devuelve -1 si Source1 ocurre antes source2 en el diccionario y 1 si es posterior.
Devuelve 0 si las dos cadenas coinciden exactamente.
int wcsncmp (Source1, source2,
norte)
Compara la primera norte caracteres anchos
en dos cadenas de ancho.

Recuerde que los caracteres de ancho se utilizan para aplicaciones que deben proteger los idiomas extranjeros, en los que unos míseros 255 caracteres diferentes pueden no ser suficientes.

A continuación se muestra una versión de caracteres anchos de la Concatenar programa:

// ConcatenateWide - concatenar dos cadenas de ancho // con una " - " en el medio usando rutinas de biblioteca # include #incluir #incluir using namespace std-int main (int nNumberofArgs, char * pszArgs []) {// leer primera cadena ... wchar_t wszString1 [260] -cout lt; lt; "Introduzca la cadena # 1:"-wcin.getline (wszString1, 128) - // ... ahora la segunda cadena ... wchar_t wszString2 [128] -cout lt; lt; "Introduzca la cadena # 2:"-wcin.getline (wszString2, 128) - // ahora virar el segundo en el extremo de la primera // con un guión en betweenwcsncat (wszString1, L" - ", 260) -wcsncat (wszString1, wszString2, 260) -wcout lt; lt; L"norte" lt; lt; wszString1 lt; lt; endl - // espera hasta que el usuario esté listo antes de la terminación del programa // para permitir al usuario ver el programa resultscout lt; lt; "Pulse Intro para continuar ..." lt; lt; endl-cin.ignore (10, `n`) - cin.get () - volver 0-}

El amplio programa de cadena de caracteres es similar a su primo cadena de caracteres de un solo byte a excepción de las siguientes diferencias:

Las variables se declaran wchar_t más bien que carbonizarse.

  • caracteres constantes y cadenas constantes precedida de una L, como en L “Esta es una gran cadena”.

  • Los objetos WCIN y wcout se utilizan en lugar de cin y cout para entrada y salida.

    Video: Tutorial C++ 21. Espacios de Nombres

  • los WCS ... funciones aparecen en lugar de la estrecha str ... funciones.

  • La salida de ConcatenateWide parece idéntica a la de la carbonizarse-basado Concatenar programa para aquellos que lo hacen la mayoría de su entrada / salida en los idiomas europeos. El tema de la escritura de programas capaces de manejar varios idiomas con alfabetos diferentes y las reglas de la gramática se conoce como localización.

    Video: C++: Leer cadenas con espacios con función "SCANF"

    ANSI C ++ incluye un tipo de cuerda diseñada para que sea más fácil de manipular cadenas de texto.

    Artículos Relacionados