C ++ wcstoull () - C ++ Standard Library

Fungsi wcstoull () di C ++ mengartikan konten string lebar sebagai bilangan integral unsigned dari basis yang ditentukan dan mengembalikan nilainya sebagai int panjang yang tidak bertanda.

Fungsi wcstoull () juga menyetel pointer untuk menunjuk ke karakter pertama setelah karakter valid terakhir dari string lebar jika ada, jika tidak, pointer disetel ke nol.

 Untuk basis 10 dan string lebar L "29hi $" Bagian numerik yang valid -> 29 Karakter pertama setelah bagian numerik yang valid -> h

Ini didefinisikan dalam file header.

wcstoull () prototipe

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

Fungsi wcstoull () mengambil string string lebar, pointer ke karakter lebar str_end dan nilai integer - basis sebagai parameternya.

Kemudian menafsirkan konten string lebar sebagai bilangan integral unsigned dari basis yang diberikan dan mengembalikan nilai int panjang yang tidak bertanda tangan.

wcstoull () Parameter

  • str: Sebuah string lebar yang merepresentasikan sebuah bilangan integral unsigned.
  • str_end: Penunjuk ke penunjuk ke karakter lebar. Nilai str_end diatur oleh fungsi ke karakter berikutnya dalam str setelah karakter terakhir yang valid. Parameter ini juga bisa menjadi penunjuk nol, dalam hal ini tidak digunakan.
  • base: Basis dari nilai integral. Himpunan nilai yang valid untuk basis adalah (0, 2, 3,…, 35, 36).

wcstoull () Nilai kembali

Fungsi wcstoull () mengembalikan:

  • nilai int long long unsigned (yang diubah dari string).
  • 0 jika tidak ada konversi valid yang dapat dilakukan.

Contoh 1: Bagaimana fungsi wcstoull () bekerja?

 #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; )

Saat Anda menjalankan program, hasilnya adalah:

 Nilai string = 101aa ᚶ Unsigned Long Long Int value = 101 End String = aa ᚶ Nilai string = 59 Unsigned Long Long Int value = 59 End String =

Nilai integer yang valid untuk fungsi wcstoull () terdiri dari:

  • Tanda + atau - opsional.
  • Awalan 0 untuk basis oktal (berlaku hanya jika basis = 8 atau 0).
  • Awalan 0x atau 0X untuk basis heksadesimal (hanya berlaku jika basis = 16 atau 0).
  • Urutan angka dan / atau huruf (jika basis lebih besar dari 10).

Jika argumen berisi tanda minus (-) di awal, bilangan negatif secara implisit dikonversi ke tipe int panjang tak bertanda tangan yang merupakan bilangan positif.

Nilai yang valid untuk parameter base adalah (0, 2, 3,…, 35, 36). Himpunan angka yang valid untuk basis 2 adalah (0, 1), untuk basis 3 adalah (0, 1, 2) dan seterusnya. Untuk basis mulai dari 11 hingga 36, ​​angka yang valid menyertakan huruf.

Himpunan digit yang valid untuk basis 11 adalah (0, 1,…, 9, A, a), untuk basis 12 adalah (0, 1,…, 9, A, a, B, b) dan seterusnya.

Contoh 2: fungsi wcstoull () dengan basis yang berbeda

 #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; )

Saat Anda menjalankan program, hasilnya adalah:

 311bzϾϿ ke Unsigned Long Long Int dengan base-5 = 81 End String = bzϾϿ 311bzϾϿ to Unsigned Long Long Int dengan base-12 = 5351 End String = zϾϿ 311bzϾϿ ke Unsigned Long Long Int dengan base-36 = 5087231 End String = ϾϿ

Fungsi wcstoull () mengabaikan semua karakter spasi putih sebelum karakter non-spasi putih utama ditemukan.

Secara umum, argumen integer yang valid untuk fungsi wcstoull () memiliki bentuk berikut:

 (spasi) (- | +) (0 | 0x) (karakter alfanumerik)

Kemudian, mulai dari karakter ini, dibutuhkan karakter sebanyak mungkin yang membentuk representasi integer yang valid dan mengubahnya menjadi nilai int panjang yang tidak bertanda tangan. Apa pun yang tersisa dari string setelah karakter valid terakhir diabaikan dan tidak berpengaruh pada hasil.

Contoh 3: fungsi wcstoull () untuk memimpin spasi kosong dan konversi tidak valid

 #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; )

Saat Anda menjalankan program, hasilnya adalah:

 205Ϣx menjadi Int Panjang Panjang Tak Bertanda tangan dengan basis 5 = 10 String Akhir = 5Ϣx xƜz201 hingga Int Panjang Tak Bertanda Tangan dengan basis 12 = 0 String Akhir = xƜz201

Jika basisnya 0, basis numerik ditentukan secara otomatis dengan melihat format string. Jika awalannya 0, maka basisnya adalah oktal (8). Jika awalannya 0x atau 0X, basisnya adalah heksadesimal (16), jika tidak basisnya adalah desimal (10).

Contoh 4: Fungsi wcstoull () dengan basis 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; )

Saat Anda menjalankan program, hasilnya adalah:

 0539Ẅ ke Unsigned Long Long Int dengan base-0 = 43 End String = 9Ẅ 0xa31 ע ke Unsigned Long Long Int dengan basis-0 = 2609 End String = ע 119x ؏ ke Unsigned Long Long Int dengan base-0 = 119 End String = x ؏

Artikel yang menarik...