c16rtomb()是C /C++中的內置函數,它將16位字符表示形式轉換為窄的多字節字符表示形式。它在C++的uchar.h頭文件中定義。
用法:
size_t c16rtomb(char* s, char16_t c16, mbstate_t* p)
參數:該函數接受三個強製性參數,如下所示:
- s:指定存儲多字節字符的字符串。
- c16:指定要轉換的16位字符。
- p:指定在解釋多字節字符串時使用的mbstate_t對象的指針。
返回值:該函數返回兩個值,如下所示:
- 程序成功後,函數將返回寫入s指向的字符數組的字節數。
- 如果失敗,則返回-1並將EILSEQ存儲在錯誤號no中。
以下示例程序旨在說明上述函數。
程序1:
// C++ program to illustrate the
// c16rtomb () function on it's success
#include <iostream>
#include <uchar.h>
#include <wchar.h>
using namespace std;
int main()
{
const char16_t str[] = u"Ishwar Gupta";
char s[50];
mbstate_t p{};
size_t length;
int j = 0;
while (str[j]) {
// initializing the function
length = c16rtomb(s, str[j], &p);
if ((length == 0) || (length > 50))
break;
for (int i = 0; i < length; ++i)
cout << s[i];
++j;
}
return 0;
}
輸出:
Ishwar Gupta
程序2:
// C++ program to illustrate the
// c16rtomb () function on it's failure
#include <iostream>
#include <uchar.h>
#include <wchar.h>
using namespace std;
int main()
{
const char16_t str[] = u"";
char s[50];
mbstate_t p{};
size_t length;
int j = 0;
while (str[j]) {
// initializing the function
length = c16rtomb(s, str[j], &p);
if ((length == 0) || (length > 50))
break;
for (int i = 0; i < length; ++i)
cout << s[i];
++j;
}
return 0;
}
輸出:
注意:上麵的程序沒有輸出,因為這是失敗的情況。
相關用法
- C++ fma()用法及代碼示例
- C++ real()用法及代碼示例
- C++ map key_comp()用法及代碼示例
- C++ imag()用法及代碼示例
- C++ valarray log()用法及代碼示例
- C++ valarray sin()用法及代碼示例
- C++ valarray exp()用法及代碼示例
- C++ valarray cos()用法及代碼示例
- C++ valarray tan()用法及代碼示例
- C++ valarray pow()用法及代碼示例
- C++ map rbegin()用法及代碼示例
- C++ valarray end()用法及代碼示例
注:本文由純淨天空篩選整理自IshwarGupta大神的英文原創作品 c16rtomb() function in C/C++。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。