ctype::narrow

Konvertiert die Zeichen des Typs CharType verwendet durch ein Gebietsschema zu den entsprechenden Zeichen des Typs char im systemeigenen Zeichensatz.

char narrow(
    CharType ch, 
    char default = '\0'
) const;
const CharType* narrow(
    const CharType* first, 
    const CharType* last,
    char default, 
    char* dest
) const;

Parameter

  • ch
    Das Zeichen des Typs Chartype wird vom Gebietsschema konvertiert werden.

  • default
    Der von der Memberfunktion zugewiesen werden, Standardwert zu Zeichen des Typs CharType, die nicht Entsprechungszeichen des Typs char haben.

  • first
    Ein Zeiger auf das erste Zeichen im Bereich von den zu konvertierenden Zeichen.

  • last
    Ein Zeiger auf Zeichen direkt hinter dem letzten Zeichen im Bereich von den zu konvertierenden Zeichen.

  • dest
    Ein const Zeiger auf das erste Zeichen des Typs char im Zielbereich, der den konvertierten Zeichenbereich speichert.

Rückgabewert

Die erste Memberfunktion gibt das systemeigene Zeichen des Typs char zurück, der dem Parameterzeichen des Typs CharTypedefault entspricht, wenn nicht äquivalent definiert ist.

Die zweite Memberfunktion gibt einen Zeiger auf den Zielbereich von systemeigenen Zeichen zurück, die aus den Zeichen des Typs CharType konvertiert werden.

Hinweise

Die erste Memberfunktion gibt do_narrow zurück (ch, default).Die zweite Memberfunktion gibt do_narrow zurück (first, last, default, dest).Nur die grundlegenden Quellzeichen werden garantiert, dass ein eindeutiges Urbild CharType unter narrow verfügen.Für diese grundlegenden Quellzeichen enthält das folgende invariante Element an: narrow ( widen ( c ), 0 ) == c.

Beispiel

// ctype_narrow.cpp
// compile with: /EHsc /W3
#include <locale>
#include <iostream>
using namespace std;

int main( )
{
   locale loc1 ( "english" );
   wchar_t *str1 = L"\x0392fhello everyone";
   char str2 [16];
   bool result1 = (use_facet<ctype<wchar_t> > ( loc1 ).narrow
      ( str1, str1 + wcslen(str1), 'X', &str2[0] ) != 0);  // C4996
   str2[wcslen(str1)] = '\0';
   wcout << str1 << endl;
   cout << &str2[0] << endl;
}
  

Anforderungen

Header: <locale>

Namespace: std

Siehe auch

Referenz

ctype Class