btowc
|
Definiert im Header
<wchar.h>
|
||
|
wint_t btowc
(
int
c
)
;
|
(seit C95) | |
Erweitert ein Einzelbyte-Zeichen
c
(interpretiert als
unsigned
char
) auf sein Äquivalent als Breitzeichen.
Die meisten Multibyte-Zeichenkodierungen verwenden Ein-Byte-Codes, um die Zeichen aus dem ASCII-Zeichensatz darzustellen. Diese Funktion kann verwendet werden, um solche Zeichen in wchar_t zu konvertieren.
Inhaltsverzeichnis |
Parameter
| c | - | Einzelbyte-Zeichen zur Verbreiterung |
Rückgabewert
WEOF
wenn
c
gleich
EOF
ist
Breitzeichen-Darstellung von
c
falls
(
unsigned
char
)
c
ein gültiges Einzelbyte-Zeichen im initialen Schaltzustand ist,
WEOF
andernfalls.
Beispiel
#include <stdio.h> #include <wchar.h> #include <locale.h> #include <assert.h> void try_widen(unsigned char c) { wint_t w = btowc(c); if(w != WEOF) printf("The single-byte character %#x widens to %#x\n", c, w); else printf("The single-byte character %#x failed to widen\n", c); } int main(void) { char *loc = setlocale(LC_ALL, "lt_LT.iso88594"); assert(loc); printf("In Lithuanian ISO-8859-4 locale:\n"); try_widen('A'); try_widen('\xdf'); // German letter ß (U+00df) in ISO-8859-4 try_widen('\xf9'); // Lithuanian letter ų (U+0173) in ISO-8859-4 setlocale(LC_ALL, "lt_LT.utf8"); printf("In Lithuanian UTF-8 locale:\n"); try_widen('A'); try_widen('\xdf'); try_widen('\xf9'); }
Mögliche Ausgabe:
In Lithuanian ISO-8859-4 locale: The single-byte character 0x41 widens to 0x41 The single-byte character 0xdf widens to 0xdf The single-byte character 0xf9 widens to 0x173 In Lithuanian UTF-8 locale: The single-byte character 0x41 widens to 0x41 The single-byte character 0xdf failed to widen The single-byte character 0xf9 failed to widen
Referenzen
- C11-Standard (ISO/IEC 9899:2011):
-
- 7.29.6.1.1 Die btowc-Funktion (S. 441)
- C99-Standard (ISO/IEC 9899:1999):
-
- 7.24.6.1.1 Die btowc-Funktion (S. 387)
Siehe auch
|
(C95)
|
verengt ein Breitzeichen zu einem Einzelbyte-Zeichen, falls möglich
(Funktion) |
|
C++-Dokumentation
für
btowc
|
|