Libreria locale C ++ - stretta

Descrizione

Viene utilizzato in caratteri stretti e internamente, questa funzione chiama semplicemente il membro protetto virtuale do_narrow, che fa quanto sopra per impostazione predefinita sia nel modello generico che nella specializzazione char (ctype <char>).

Dichiarazione

Di seguito è riportata la dichiarazione per std :: ctype :: narrow.

C ++ 98

char narrow (char_type c, char dfault) const;

C ++ 11

char narrow (char_type c, char dfault) const;

Parametri

  • c - È un tipo char.

  • low,high - È un puntatore all'inizio e alla fine della sequenza di caratteri.

  • to - È un puntatore a una serie di elementi del tipo di carattere del facet.

  • dfault - È un valore di carattere predefinito.

Valore di ritorno

Restituisce la trasformazione di c.

Eccezioni

Se viene generata un'eccezione, non vengono apportate modifiche all'oggetto facet, sebbene i caratteri nell'intervallo potrebbero essere stati influenzati.

Gare di dati

Si accede all'oggetto e agli elementi nell'intervallo [basso, alto).

Esempio

Nell'esempio seguente viene illustrato lo 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;
}

Compiliamo ed eseguiamo il programma sopra, questo produrrà il seguente risultato:

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