mbsinit
来自 cppreference.com
在头文件 <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 函数 (p: 322)
- C11 标准 (ISO/IEC 9899:2011)
- 7.29.6.2.1 mbsinit 函数 (p: 441-442)
- C99 标准 (ISO/IEC 9899:1999)
- 7.24.6.2.1 mbsinit 函数 (p: 387-388)
[编辑] 另请参见
(C95) |
迭代多字节字符字符串所需的转换状态信息 (类) |
C++ 文档 for mbsinit
|