Cómo hacer espacio para las cadenas de ancho en c ++

El programador de C ++ se requiere a menudo 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.

Amplias funciones de cadena-Handling
NombreOperación
int wcslen (cadena)Devuelve el número de caracteres anchos en una cadena, notincluding el nulo de terminación.
wchar_t * wcscpy (destino, origen)Copias de la amplia cadena de origen en una matriz de destino.
wchar_t * wcscat (destino, origen)Concatena los amplia cadena de origen en el extremo de la cadena targetwide.
wchar_t * wcsncpy (destino, origen, n)Copia una amplia cadena de hasta npersonajes de la cadena de origen en una matriz de destino.
wchar_t * wcsncat (destino, origen, n)Concatena la cadena de origen en el extremo de la targetstring o n personajes, lo que comesfirst.
wchar_t * wcsspn (cadena, patrón)Busca la dirección de la primera ocurrencia de patrón en string.Returns un nulo si no se encuentra patrón.
int wcscmp (source1, source2)Compara dos cadenas de ancho. Devuelve -1 si se produce source1 antes source2 en el diccionario y 1 si later.Returns 0 si las dos cadenas coinciden exactamente.
int wcsncmp (source1, source2, n)Compara el primero n amplia charactersin dos cadenas de ancho.

Recuerde que los caracteres de ancho se utilizan para aplicaciones que deben soportar las lenguas extranjeras, donde unos míseros 255 caracteres diferentes pueden no ser suficientes.

A continuación se muestra una amplia versión carácter del Concatenar programa:

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

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

  • Las variables se declaran wchar_t Más bien que Char.

  • Caracteres constantes y cadenas constantes aparecen precedidos de un L, como en L " Se trata de una amplia cadena # 148 ;.

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

  • los wcs # 133- funciones aparecen en lugar del estrecho str # 133- funciones.

La salida de ConcatenateWide parece idéntica a la de la carac-basado Concatenar programa para los que lo hacen la mayoría de su entrada / salida en las lenguas europeas. El tema de los programas de escritura capaz de manejar múltiples idiomas con alfabetos diferentes y las reglas de la gramática se conoce como localización.

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




» » » » Cómo hacer espacio para las cadenas de ancho en c ++