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

Hàm wcstoull () trong C ++ diễn giải nội dung của một chuỗi rộng là một số nguyên không dấu của cơ sở được chỉ định và trả về giá trị của nó dưới dạng một int dài không dấu.

Hàm wcstoull () cũng đặt một con trỏ trỏ đến ký tự đầu tiên sau ký tự hợp lệ cuối cùng của chuỗi rộng nếu có, nếu không thì con trỏ được đặt thành null.

 Đối với cơ số 10 và chuỗi rộng L "29hi $" Phần số hợp lệ -> 29 Ký tự đầu tiên sau phần số hợp lệ -> h

Nó được định nghĩa trong tệp tiêu đề.

nguyên mẫu wcstoull ()

 unsigned long wcstoull (const wchar_t * str, wchar_t ** str_end, int base);

Hàm wcstoull () nhận một chuỗi rộng str, một con trỏ đến ký tự rộng str_end và một giá trị số nguyên - base làm tham số của nó.

Sau đó, nó diễn giải nội dung của chuỗi rộng là một số tích phân không dấu của cơ sở đã cho và trả về giá trị int dài dài không dấu.

wcstoull () Tham số

  • str: Một chuỗi rộng có biểu diễn một số tích phân không dấu.
  • str_end: Một con trỏ trỏ tới một ký tự rộng. Giá trị của str_end được hàm đặt thành ký tự tiếp theo trong str sau ký tự hợp lệ cuối cùng. Tham số này cũng có thể là một con trỏ null, trong trường hợp đó nó không được sử dụng.
  • base: Cơ sở của giá trị tích phân. Tập hợp các giá trị hợp lệ cho cơ sở là (0, 2, 3,…, 35, 36).

wcstoull () Giá trị trả về

Hàm wcstoull () trả về:

  • một giá trị int dài dài không dấu (được chuyển đổi từ chuỗi).
  • 0 nếu không thể thực hiện chuyển đổi hợp lệ.

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

 #include #include #include using namespace std; int main() ( setlocale(LC_ALL, "en_US.UTF-8"); wchar_t str1() = L"101aau16b6"; wchar_t str2() = L"59"; wchar_t *end; unsigned long long value; int base = 10; value = wcstoull(str1, &end, base); wcout << L"String value = " << str1 << endl; wcout << L"Unsigned Long Long Int value = " << value << endl; wcout << L"End String = " << end << endl; value = wcstoull(str2, &end, base); wcout << L"String value = " << str2 << endl; wcout << L"Unsigned Long Long Int value = " << value << endl; wcout << L"End String = " << end << endl; return 0; )

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

 Giá trị chuỗi = 101aa ᚶ Giá trị Int dài dài không dấu = 101 Chuỗi kết thúc = aa ᚶ Giá trị chuỗi = 59 Giá trị Int dài dài chưa ký = 59 Chuỗi kết thúc =

Giá trị số nguyên hợp lệ cho hàm wcstoull () bao gồm:

  • Dấu + hoặc - tùy chọn.
  • Tiền tố 0 cho cơ số bát phân (chỉ áp dụng khi cơ số = 8 hoặc 0).
  • Tiền tố 0x hoặc 0X cho cơ số thập lục phân (chỉ áp dụng khi cơ số = 16 hoặc 0).
  • Một dãy chữ số và / hoặc bảng chữ cái (nếu cơ số lớn hơn 10).

Nếu đối số có chứa dấu trừ (-) ở đầu, thì số âm được chuyển đổi hoàn toàn thành kiểu int dài dài không dấu là một số dương.

Các giá trị hợp lệ cho cơ sở tham số là (0, 2, 3,…, 35, 36). Tập hợp các chữ số hợp lệ cho cơ số 2 là (0, 1), cho cơ số 3 là (0, 1, 2), v.v. Đối với các cơ sở bắt đầu từ 11 đến 36, các chữ số hợp lệ bao gồm các bảng chữ cái.

Tập hợp các chữ số hợp lệ cho cơ số 11 là (0, 1,…, 9, A, a), cho cơ số 12 là (0, 1,…, 9, A, a, B, b), v.v.

Ví dụ 2: Hàm wcstoull () với các cơ sở khác nhau

 #include #include #include using namespace std; int main() ( setlocale(LC_ALL, "en_US.UTF-8"); wchar_t *end; wchar_t str() = L"311bzu03feu03ff"; wcout << str << L" to Unsigned Long Long Int with base-5 = " << wcstoull(str, &end, 5) << endl; wcout << L"End String = " << end << endl << endl; wcout << str << L" to Unsigned Long Long Int with base-12 = " << wcstoull(str, &end, 12) << endl; wcout << L"End String = " << end << endl << endl; wcout << str << L" to Unsigned Long Long Int with base-36 = " << wcstoull(str, &end, 36) << endl; wcout << L"End String = " << end << endl << endl; return 0; )

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

 311bzϾϿ đến Int dài dài không dấu với cơ số-5 = 81 Chuỗi cuối = bzϾϿ 311bzϾϿ đến Chuỗi dài không dấu với cơ số-12 = 5351 Chuỗi cuối = zϾϿ 311bzϾϿ thành Chuỗi dài không dấu với cơ số-36 = 5087231 Chuỗi cuối = ϾϿ

Hàm wcstoull () bỏ qua tất cả các ký tự khoảng trắng hàng đầu cho đến khi tìm thấy ký tự không phải khoảng trắng chính.

Nói chung, đối số số nguyên hợp lệ cho hàm wcstoull () có dạng sau:

 (khoảng trắng) (- | +) (0 | 0x) (ký tự chữ và số)

Sau đó, bắt đầu từ ký tự này, cần nhiều ký tự nhất có thể để tạo thành biểu diễn số nguyên hợp lệ và chuyển chúng thành giá trị int dài không dấu. Bất cứ thứ gì còn lại của chuỗi sau ký tự hợp lệ cuối cùng sẽ bị bỏ qua và không ảnh hưởng đến kết quả.

Ví dụ 3: Hàm wcstoull () cho khoảng trắng ở đầu và chuyển đổi không hợp lệ

 #include #include #include using namespace std; int main() ( setlocale(LC_ALL, "en_US.UTF-8"); wchar_t *end; wcout << L" 205u03e2x to Unsigned Long Long Int with base-5 = " << wcstoull(L" 205u03e2x", &end, 5) << endl; wcout << L"End String = " << end << endl << endl; wcout << L"xu019cz201 to Unsigned Long Long Int with base-12 = " << wcstoull(L"xu019cz201", &end, 12) << endl; wcout << L"End String = " << end << endl << endl; return 0; )

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

 205Ϣx thành Long Int không có dấu với cơ số-5 = 10 Chuỗi kết thúc = 5Ϣx xƜz201 đến Int dài không có dấu với cơ số-12 = 0 Chuỗi kết thúc = xƜz201

Nếu cơ số là 0, cơ số số được xác định tự động bằng cách xem định dạng của chuỗi. Nếu tiền tố là 0, cơ số là bát phân (8). Nếu tiền tố là 0x hoặc 0X, thì cơ số là thập lục phân (16), nếu không thì cơ số là thập phân (10).

Ví dụ 4: Hàm wcstoull () với cơ số 0

 #include #include #include using namespace std; int main() ( setlocale(LC_ALL, "en_US.UTF-8"); wchar_t *end; wcout << L"0539u1e84 to Unsigned Long Long Int with base-0 = " << wcstoull(L"0539u1e84", &end, 0) << endl; wcout << L"End String = " << end << endl << endl; wcout << L"0xa31u05e2 to Unsigned Long Long Int with base-0 = " << wcstoull(L"0xa31u05e2", &end, 0) << endl; wcout << L"End String = " << end << endl << endl; wcout << L"119xu060f to Unsigned Long Long Int with base-0 = " << wcstoull(L"119xu060f", &end, 0) << endl; wcout << L"End String = " << end << endl << endl; return 0; )

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

 0539Ẅ đến Int dài không dấu với cơ sở-0 = 43 Chuỗi cuối = 9Ẅ 0xa31 ע đến Int dài dài không dấu với cơ sở-0 = 2609 Chuỗi cuối = ע 119x ؏ đến Int dài dài không dấu với cơ sở-0 = 119 Chuỗi cuối = x ؏

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