Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

ฟังก์ชัน wcstoll() ใน C/C++


ฟังก์ชัน wcstoll() ใช้เพื่อแปลงสตริงอักขระแบบกว้างเป็นจำนวนเต็มแบบยาว มันตั้งค่าตัวชี้ให้ชี้ไปที่อักขระตัวแรกหลังจากตัวสุดท้าย ไวยากรณ์เป็นเหมือนด้านล่าง

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

ฟังก์ชันนี้รับสามอาร์กิวเมนต์ อาร์กิวเมนต์เหล่านี้เป็นเหมือนด้านล่าง −

  • str: นี่คือจุดเริ่มต้นของสตริงที่กว้าง
  • str_end: ฟังก์ชัน str_end ถูกกำหนดโดยฟังก์ชันเป็นอักขระตัวถัดไป ต่อจากอักขระที่ถูกต้องตัวสุดท้าย หากมีอักขระใดๆ มิฉะนั้นจะเป็นค่าว่าง
  • ฐาน: สิ่งนี้ระบุฐาน ค่าฐานสามารถเป็น (0, 2, 3, …, 35, 36)

ฟังก์ชันนี้จะคืนค่าจำนวนเต็มแบบยาวที่แปลงแล้ว เมื่ออักขระชี้ไปที่ NULL จะคืนค่า 0

ตัวอย่าง

#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
}

ผลลัพธ์

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

ทีนี้มาดูตัวอย่างด้วยค่าฐานที่ต่างกัน ฐานคือ 16 โดยการนำสตริงของฐานที่กำหนดมา จะพิมพ์ในรูปแบบทศนิยม

ตัวอย่าง

#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
}

ผลลัพธ์

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

ในที่นี้สตริงประกอบด้วย 5E ดังนั้นค่าของมันคือ 94 ในหน่วยทศนิยม และสตริงที่สองมี 125 ซึ่งเป็น 293 ในหน่วยทศนิยม