Hàm wcstoll() dùng để chuyển đổi chuỗi ký tự rộng (wide character string) sang số nguyên long long. Nó thiết lập con trỏ trỏ đến ký tự đầu tiên sau ký tự hợp lệ cuối cùng. Cú pháp:
long long wcstoll(const wchar_t* str, wchar_t** str_end, int base)
Hàm nhận 3 đối số:
- str: Địa chỉ bắt đầu của chuỗi rộng.
- str_end: Được thiết lập bởi hàm trỏ đến ký tự tiếp theo sau ký tự hợp lệ cuối cùng, hoặc null nếu không có.
- base: Cơ số (0, 2, 3, ..., 35, 36).
Hàm trả về số nguyên long long đã chuyển đổi. Khi con trỏ trỏ đến NULL, trả về 0.
Ví dụ 1: Cơ số 10
#include <iostream>
using namespace std;
int main() {
wchar_t string1[] = L"777HelloWorld";
wchar_t string2[] = L"565Hello";
wchar_t* End;
int base = 10;
int value;
value = wcstoll(string1, &End, base);
wcout << "The string Value = " << string1 << "\n";
wcout << "Long Long Int value = " << value << "\n";
wcout << "End String = " << End << "\n";
value = wcstoll(string2, &End, base);
wcout << "\nThe string Value = " << string2 << "\n";
wcout << "Long Long Int value = " << value << "\n";
wcout << "End String = " << End;
return 0;
}
Kết quả
The string Value = 777HelloWorld Long Long Int value = 777 End String = HelloWorld The string Value = 565Hello Long Long Int value = 565 End String = Hello
Ví dụ 2: Cơ số 16
#include <iostream>
using namespace std;
int main() {
wchar_t string1[] = L"5EHelloWorld";
wchar_t string2[] = L"125Hello";
wchar_t* End;
int base = 16;
int value;
value = wcstoll(string1, &End, base);
wcout << "The string Value = " << string1 << "\n";
wcout << "Long Long Int value = " << value << "\n";
wcout << "End String = " << End << "\n";
value = wcstoll(string2, &End, base);
wcout << "\nThe string Value = " << string2 << "\n";
wcout << "Long Long Int value = " << value << "\n";
wcout << "End String = " << End;
return 0;
}
Kết quả
The string Value = 5EHelloWorld Long Long Int value = 94 End String = HelloWorld The string Value = 125Hello Long Long Int value = 293 End String = Hello
Chuỗi chứa 5E (hex) = 94 (dec), chuỗi 125 (hex) = 293 (dec).