Пространства имён
Варианты
Действия

std::btowc

Материал из cppreference.com
< cpp‎ | string‎ | multibyte
 
 
 
 
Определено в заголовочном файле <cwchar>
std::wint_t btowc( int c );

Расширяет однобайтовый символ c до эквивалентного широкого символа.

Большинство кодировок многобайтовых символов используют однобайтовые коды для представления символов из набора символов ASCII. Эту функцию можно использовать для преобразования таких символов в wchar_t.

Содержание

[править] Параметры

cоднобайтовый символ для расширения

[править] Возвращаемое значение

WEOF, если c равно EOF.

Представление расширенного символа c, если (unsigned char)c является допустимым однобайтовым символом в исходном состоянии сдвига, WEOF иначе.

[править] Пример

#include <clocale>
#include <cwchar>
#include <iostream>
 
void try_widen(char c)
{
    std::wint_t w = std::btowc(c);
    if (w != WEOF)
        std::cout << "Однобайтовый символ " << +(unsigned char)c
                  << " расширяется до " << +w << '\n';
    else
        std::cout << "Однобайтовый символ " << +(unsigned char)c
                  << " не удалось расширить\n";
}
 
int main()
{
    std::setlocale(LC_ALL, "lt_LT.iso88594");
    std::cout << std::hex << std::showbase << "В литовской локали ISO-8859-4:\n";
    try_widen('A');
    try_widen('\xdf'); // Немецкая буква ß (U+00df) в ISO-8859-4
    try_widen('\xf9'); // Литовская буква ų (U+0173) в ISO-8859-4
 
    std::setlocale(LC_ALL, "lt_LT.utf8");
    std::cout << "В литовской локали UTF-8:\n";
    try_widen('A');
    try_widen('\xdf');
    try_widen('\xf9');
}

Возможный вывод:

В литовской локали ISO-8859-4:
Однобайтовый символ 0x41 расширяется до 0x41
Однобайтовый символ 0xdf расширяется до 0xdf
Однобайтовый символ 0xf9 расширяется до 0x173
В литовской локали UTF-8:
Однобайтовый символ 0x41 расширяется до 0x41
Однобайтовый символ 0xdf не удалось расширить
Однобайтовый символ 0xf9 не удалось расширить

[править] Смотрите также

сужает широкий символ до однобайтового узкого символа, если это возможно
(функция) [править]
[virtual]
преобразует символ или символы из char в charT
Оригинал:
converts a character or characters from char to charT
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

(virtual protected std::ctype функция-элемент) [править]