Computer >> Máy Tính >  >> Lập trình >> lập trình C

Hàm wcstoll () trong C / C ++

Hàm wcstoll () được sử dụng để chuyển đổi chuỗi ký tự rộng thành số nguyên dài dài. Nó đặt con trỏ trỏ đến ký tự đầu tiên sau ký tự cuối cùng. Cú pháp như dưới đây.

long long wcstoll(const wchar_t* str, wchar_t** str_end, int base)

Hàm này có ba đối số. Những đối số này giống như bên dưới -

  • str: Đây là bước khởi đầu của một chuỗi rộng.
  • str_end: Hàm str_end được hàm đặt thành ký tự tiếp theo, sau ký tự hợp lệ cuối cùng, nếu có bất kỳ ký tự nào, nếu không thì null.
  • cơ sở: Điều này chỉ định cơ sở. Các giá trị cơ bản có thể là (0, 2, 3,…, 35, 36)

Hàm này trả về số nguyên dài dài đã được chuyển đổi. Khi ký tự trỏ đến NULL, nó sẽ trả về 0.

Ví dụ

#include <iostream>
using namespace std;
main() {
   //Define two wide character string
   wchar_t string1[] = L"777HelloWorld";
   wchar_t string2[] = L"565Hello";
   wchar_t* End; //The end pointer
   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"; //remaining string after long long integer
   value = wcstoll(string2, &End, base);
   wcout << "\nThe string Value = " << string2 << "\n";
   wcout << "Long Long Int value = " << value << "\n";
   wcout << "End String = " << End; //remaining string after long long integer
}

Đầu ra

The string Value = 777HelloWorld
Long Long Int value = 777
End String = HelloWorld
The string Value = 565Hello
Long Long Int value = 565
End String = Hello

Bây giờ Chúng ta hãy xem ví dụ với một giá trị cơ bản khác. Ở đây cơ số là 16. Bằng cách lấy chuỗi của cơ số đã cho, nó sẽ in ở định dạng thập phân.

Ví dụ

#include <iostream>
using namespace std;
main() {
   //Define two wide character string
   wchar_t string1[] = L"5EHelloWorld";
   wchar_t string2[] = L"125Hello";
   wchar_t* End; //The end pointer
   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"; //remaining string after long long integer
   value = wcstoll(string2, &End, base);
   wcout << "\nThe string Value = " << string2 << "\n";
   wcout << "Long Long Int value = " << value << "\n";
   wcout << "End String = " << End; //remaining string after long long integer
}

Đầu ra

The string Value = 5EHelloWorld
Long Long Int value = 94
End String = HelloWorld
The string Value = 125Hello
Long Long Int value = 293
End String = Hello

Ở đây, chuỗi chứa 5E nên giá trị của nó là 94 ở dạng thập phân và chuỗi thứ hai chứa 125. Đây là 293 ở dạng thập phân.