btowc
Определено в заголовке <wchar.h> | ||
|---|---|---|
wint_t btowc( int c ); | (с C95) |
Расширяет однобайтовый символ c (переинтерпретированный как unsigned char) до его эквивалента широкого символа.
Большинство многобайтовых кодировок используют однобайтовые коды для представления символов из набора символов ASCII. Эта функция может быть использована для преобразования таких символов в wchar_t.
Параметры
| c | - | однобайтовый символ для расширения |
Возвращаемое значение
WEOF если c равен EOF
представление широкого символа c если (unsigned char)c является допустимым однобайтовым символом в начальном состоянии сдвига, WEOF в противном случае.
Пример
#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');
}Возможный вывод:
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
Ссылки
- Стандарт C11 (ISO/IEC 9899:2011):
- 7.29.6.1.1 Функция btowc (с. 441)
- Стандарт C99 (ISO/IEC 9899:1999):
- 7.24.6.1.1 Функция btowc (с. 387)
См. также
|
(C95) | преобразует широкий символ в однобайтовый узкий символ, если возможно (функция) |
Документация C++ для btowc |
|
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/c/string/multibyte/btowc