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

std::mbstowcs

Материал из cppreference.com
< cpp‎ | string‎ | multibyte

Определено в заголовочном файле <cstdlib>
std::size_t mbstowcs( wchar_t* dst, const char* src, std::size_t len)
Преобразует строку многобайтовых символов из массива, чей первый элемент, на который указывает src его широкой представленности характер. Старинная символы хранятся в последовательных элементов массива, на который указывает dst. Не более широкий len символы записываются в массив назначения.
Оригинал:
Converts a multibyte character string from the array whose first element is pointed to by src to its wide character representation. Converted characters are stored in the successive elements of the array pointed to by dst. No more than len wide characters are written to the destination array.
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
Каждый персонаж превращается как бы призыв к std::mbtowc, за исключением того, что mbtowc состояние преобразования остается неизменным. Преобразование прекращается, если:
Оригинал:
Each character is converted as if by a call to std::mbtowc, except that the mbtowc conversion state is unaffected. The conversion stops if:
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
  • Многобайтовых нулевого символа был преобразован и сохранен.
    Оригинал:
    The multibyte null character was converted and stored.
    Текст был переведён автоматически через Google Translate.
    Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
  • Недействительными (в текущей локали C) многобайтовых символов была обнаружена.
    Оригинал:
    An invalid (in the current C locale) multibyte character was encountered.
    Текст был переведён автоматически через Google Translate.
    Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
  • Следующий широкий символ, который будет храниться будет превышать len.
    Оригинал:
    The next wide character to be stored would exceed len.
    Текст был переведён автоматически через Google Translate.
    Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

Содержание

[править] Заметки

В большинстве реализаций, эта функция обновления глобальный статический объект типа std::mbstate_t как он обрабатывает через строку, и не может быть вызвана одновременно из двух потоков, std::mbsrtowcs должны быть использованы в таких случаях.
Оригинал:
In most implementations, this function updates a global static object of type std::mbstate_t as it processes through the string, and cannot be called simultaneously by two threads, std::mbsrtowcs should be used in such cases.
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
POSIX определяет общее расширение: если dst является нулевым указателем, то эта функция возвращает количество широких символов, которые будут записаны в dst, если преобразовать. Подобное поведение является стандартным для std::mbsrtowcs.
Оригинал:
POSIX specifies a common extension: if dst is a null pointer, this function returns the number of wide characters that would be written to dst, if converted. Similar behavior is standard for std::mbsrtowcs.
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

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

dst -
Указатель на широкий массив символов, где широкая строка будет сохранена
Оригинал:
pointer to wide character array where the wide string will be stored
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
src -
Указатель на первый элемент нулем многобайтовую строку преобразовать
Оригинал:
pointer to the first element of a null-terminated multibyte string to convert
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
len -
Число широких символов, доступных в массиве, на который указывает DST
Оригинал:
number of wide characters available in the array pointed to by dst
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

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

В случае успеха, возвращается количество широких символов, исключая завершающий L'\0', написанные в массив назначения.
Оригинал:
On success, returns the number of wide characters, excluding the terminating L'\0', written to the destination array.
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
На ошибки преобразования (если недействительных многобайтовых символов встречается), возвращается -1.
Оригинал:
On conversion error (if invalid multibyte character was encountered), returns -1.
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

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

#include <iostream>
#include <clocale>
#include <cstdlib>
int main()
{
    std::setlocale(LC_ALL, "en_US.utf8");
    const char* mbstr = u8"z\u00df\u6c34\U0001d10b"; // or u8"zß水𝄋"
                        // or "\x7a\xc3\x9f\xe6\xb0\xb4\xf0\x9d\x84\x8b";
    wchar_t wstr[5];
    std::mbstowcs(wstr, mbstr, 5);
    std::wcout << "wide string: " << wstr << '\n';
}

Вывод:

wide string: zß水𝄋

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

преобразует узкой буквенная многобайтовых широкой строки, данное состояние
Оригинал:
converts a narrow multibyte character string to wide string, given state
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(функция) [edit]
Преобразует строку широких, чтобы сузить многобайтовой строки символов
Оригинал:
converts a wide string to narrow multibyte character string
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(функция) [edit]
[virtual]
преобразует строку из externT в internT, например, при чтении из файла
Оригинал:
converts a string from externT to internT, such as when reading from file
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(virtual protected std::codecvt функция-член) [edit]
C documentation for mbstowcs