mbsinit
|
Определено в заголовочном файле
<wchar.h>
|
||
|
int
mbsinit
(
const
mbstate_t
*
ps
)
;
|
(начиная с C95) | |
Если
ps
не является нулевым указателем, функция
mbsinit
определяет, описывает ли указываемый объект
mbstate_t
начальное состояние преобразования.
Содержание |
Примечания
Хотя обнулённый mbstate_t всегда представляет начальное состояние преобразования, могут существовать и другие значения mbstate_t , которые также представляют начальное состояние преобразования.
Параметры
| ps | - | указатель на объект mbstate_t для исследования |
Возвращаемое значение
0
если
ps
не является нулевым указателем и не представляет начальное состояние преобразования, в противном случае - ненулевое значение.
Пример
#include <locale.h> #include <string.h> #include <stdio.h> #include <wchar.h> int main(void) { // allow mbrlen() to work with UTF-8 multibyte encoding setlocale(LC_ALL, "en_US.utf8"); // UTF-8 narrow multibyte encoding const char* str = u8"水"; // or u8"\u6c34" or "\xe6\xb0\xb4" static mbstate_t mb; // zero-initialize (void)mbrlen(&str[0], 1, &mb); if (!mbsinit(&mb)) { printf("After processing the first 1 byte of %s,\n" "the conversion state is not initial\n\n", str); } (void)mbrlen(&str[1], strlen(str), &mb); if (mbsinit(&mb)) { printf("After processing the remaining 2 bytes of %s,\n" "the conversion state is initial conversion state\n", str); } }
Вывод:
After processing the first 1 byte of 水, the conversion state is not initial After processing the remaining 2 bytes of 水, the conversion state is initial conversion state
Ссылки
- Стандарт C17 (ISO/IEC 9899:2018):
-
- 7.29.6.2.1 Функция mbsinit (стр. 322)
- Стандарт C11 (ISO/IEC 9899:2011):
-
- 7.29.6.2.1 Функция mbsinit (стр. 441-442)
- Стандарт C99 (ISO/IEC 9899:1999):
-
- 7.24.6.2.1 Функция mbsinit (стр: 387-388)
Смотрите также
|
(C95)
|
информация о состоянии преобразования, необходимая для итерации многобайтовых строк символов
(класс) |
|
C++ documentation
для
mbsinit
|
|