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