C / C ++中的c16rtomb()函数?
在C++中,我们可以使用16位字符表示形式。c16rtomb()函数用于将16位字符表示形式转换为狭窄的多字节字符表示形式。我们可以在uchar.h头文件中找到此函数。
此函数采用三个参数。这些是-
将存储多字节字符的字符串
16位字符转换
mbstate_t对象类型的指针。用于解释多字节字符串。
成功时,此函数返回写入字符数组的字节数,否则返回-1。让我们看一个例子,以获得更好的主意。
示例
#include <iostream> #include <uchar.h> #include <wchar.h> using namespace std; int main() { const char16_t myStr[] = u"Hello World"; char dest[50]; mbstate_t p{}; size_t length; int j = 0; while (myStr[j]) { length = c16rtomb(dest, myStr[j], &p); //get length from c16rtomb() method if ((length == 0) || (length > 50)) break; for (int i = 0; i < length; ++i) cout << dest[i]; j++; } }
输出结果
Hello World