C ++ mbrlen () - Thư viện chuẩn C ++

Hàm mbrlen () trong C ++ xác định kích thước tính bằng byte của một ký tự nhiều byte.

Hàm mbrlen () được định nghĩa trong tệp tiêu đề.

nguyên mẫu mbrlen ()

 size_t mbrlen (const char * s, size_t n, mbstate_t * ps);

Hàm mbrlen () kiểm tra chuỗi có byte đầu tiên được trỏ đến bởi s và xác định kích thước của nó theo byte cho trạng thái chuyển đổi hiện tại ps. Nhiều nhất n byte trong s được kiểm tra.

mbrlen () Tham số

  • s: Con trỏ đến byte đầu tiên của chuỗi multibyte để kiểm tra.
  • n: MA số byte tính bằng s cần kiểm tra.
  • ps: Con trỏ tới đối tượng mbstate_t xác định trạng thái chuyển đổi.

mbrlen () Giá trị trả về

Hàm mbrlen () trả về:

  • Số byte hoàn thành một ký tự nhiều byte hợp lệ.
  • 0 nếu s trỏ đến ký tự rỗng.
  • -1 là lỗi mã hóa xảy ra.
  • -2 nếu n byte tiếp theo không đại diện cho một ký tự nhiều byte hoàn chỉnh.

Ví dụ: Hàm mbrlen () hoạt động như thế nào?

 #include #include #include using namespace std; void test_mbrlen(const char *s, size_t n) ( mbstate_t ps = mbstate_t(); int retVal = mbrlen(s, n, &ps); if (retVal == -2) cout << "Next " << n << " byte(s) doesn't represent a complete multibyte character" << endl; else if (retVal == -1) cout << "Next " << n << " byte(s) doesn't represent a valid multibyte character" << endl; else cout << "Next " << n << " byte(s) of " << s << " holds " << retVal << " byof multibyte character" << endl; ) int main() ( setlocale(LC_ALL, "en_US.utf8"); char str() = "u00b5"; test_mbrlen(str, 1); test_mbrlen(str, 5); return 0; )

Khi bạn chạy chương trình, đầu ra sẽ là:

 (Các) byte tiếp theo không đại diện cho một ký tự multibyte hoàn chỉnh 5 byte tiếp theo của µ chứa 2 byte ký tự multibyte

thú vị bài viết...