Biblioteca de configuración regional de C ++: estrecha

Descripción

Se usa en caracteres estrechos e internamente, esta función simplemente llama al miembro virtual protegido do_narrow, que hace lo anterior de forma predeterminada tanto en la plantilla genérica como en la especialización char (ctype <char>).

Declaración

A continuación se muestra la declaración de std :: ctype :: narrow.

C ++ 98

char narrow (char_type c, char dfault) const;

C ++ 11

char narrow (char_type c, char dfault) const;

Parámetros

  • c - Es un tipo char.

  • low,high - Es un puntero al principio y al final de la secuencia de caracteres.

  • to - Es un puntero a una variedad de elementos del tipo de carácter de la faceta.

  • dfault - Es un valor de carácter predeterminado.

Valor devuelto

Devuelve la transformación de c.

Excepciones

Si se lanza una excepción, no hay cambios en el objeto de faceta, aunque es posible que los personajes del rango se hayan visto afectados.

Carreras de datos

Se accede al objeto y a los elementos del rango [bajo, alto).

Ejemplo

En el siguiente ejemplo se explica sobre std :: ctype :: narrow.

#include <iostream>
#include <locale>
#include <string>

int main () {
   std::locale loc;
   std::wstring yourname;

   std::cout << "Please enter your a word: ";
   std::getline (std::wcin,yourname);
   std::wstring::size_type length = yourname.length();

   std::cout << "The first (narrow) character in your word is: ";
   std::cout << std::use_facet< std::ctype<wchar_t> >(loc).narrow ( yourname[0], '?' );
   std::cout << '\n';

   std::cout << "The narrow transformation of your word is: ";
   char * pc = new char [length+1];
   std::use_facet< std::ctype<wchar_t> >(loc).narrow ( yourname.c_str(), 
      yourname.c_str()+length+1, '?', pc);
   std::cout << pc << '\n';

   return 0;
}

Compilemos y ejecutemos el programa anterior, esto producirá el siguiente resultado:

Please enter your a word: sai
The first (narrow) character in your word is: s
The narrow transformation of your word is: sai