Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

ฟังก์ชัน c32rtomb() ใน C/C++


ใน C++ เราสามารถใช้การแสดงผลตัวอักษร 32 บิต ฟังก์ชัน c32rtomb() ใช้สำหรับแปลงการแสดงผลตัวอักษร 32 บิต เป็นการแสดงผลตัวอักษรหลายไบต์ (multi-byte) ฟังก์ชันนี้อยู่ในไฟล์หัวข้อ uchar.h

ฟังก์ชันนี้รับพารามิเตอร์ 3 ตัว ได้แก่

  • สตริงที่จะเก็บตัวอักษรหลายไบต์
  • ตัวอักษร 32 บิตที่ต้องการแปลง
  • พอยน์เตอร์ประเภท mbstate_t ใช้สำหรับตีความสตริงหลายไบต์

ฟังก์ชันนี้คืนค่าจำนวนไบต์ที่เขียนลงในอาร์เรย์ตัวอักษรเมื่อสำเร็จ มิฉะนั้นคืนค่า -1 มาดูตัวอย่างเพื่อความเข้าใจที่ดีขึ้น

ตัวอย่างโค้ด

#include <iostream> #include <uchar.h> #include <wchar.h> using namespace std; int main() { const char32_t myStr[] = U"Hello World"; char dest[50]; mbstate_t p{}; size_t length; int j = 0; while (myStr[j]) { length = c32rtomb(dest, myStr[j], &p); if ((length == 0) || (length > 50)) break; for (int i = 0; i < length; ++i) cout << dest[i]; j++; } }

ผลลัพธ์

Hello World