C ++ wcstoull () - C ++ Standart Kitaplığı

C ++ 'daki wcstoull () işlevi, geniş bir dizenin içeriğini belirtilen tabanın işaretsiz bir integral sayısı olarak yorumlar ve değerini işaretsiz uzun uzun int olarak döndürür.

Wcstoull () işlevi, eğer varsa geniş dizgenin son geçerli karakterinden sonraki ilk karakteri gösterecek bir gösterici ayarlar, aksi takdirde işaretçi boş olarak ayarlanır.

 10 tabanı ve geniş string L "29hi $" için Geçerli sayısal kısım -> 29 Geçerli sayısal kısımdan sonraki ilk karakter -> h

Başlık dosyasında tanımlanmıştır.

wcstoull () prototipi

 işaretsiz uzun wcstoull (const wchar_t * str, wchar_t ** str_end, int base);

Wcstoull () işlevi geniş bir dizge, geniş karakterli str_end için bir gösterici ve parametresi olarak bir tamsayı değeri - taban alır.

Daha sonra geniş dizenin içeriğini verilen tabanın işaretsiz bir integral sayısı olarak yorumlar ve işaretsiz uzun uzun int değeri döndürür.

wcstoull () Parametreler

  • str: İşaretsiz bir integral sayısının temsiline sahip geniş bir dize.
  • str_end: Geniş bir karaktere bir gösterici. Str_end değeri, işlev tarafından son geçerli karakterden sonra str'deki bir sonraki karaktere ayarlanır. Bu parametre aynı zamanda bir boş gösterici olabilir, bu durumda kullanılmaz.
  • taban: İntegral değerinin tabanı. Taban için geçerli değerler kümesi (0, 2, 3,…, 35, 36).

wcstoull () Dönüş değeri

Wcstoull () işlevi şunu döndürür:

  • işaretsiz uzun int değeri (dizeden dönüştürülür).
  • 0 geçerli bir dönüştürme yapılamazsa.

Örnek 1: wcstoull () işlevi nasıl çalışır?

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

Programı çalıştırdığınızda, çıktı:

 String değeri = 101aa ᚶ Unsigned Long Long Int değeri = 101 End String = aa ᚶ String değeri = 59 Unsigned Long Long Int değeri = 59 End String =

Wcstoull () işlevi için geçerli bir tamsayı değeri şunlardan oluşur:

  • İsteğe bağlı bir + veya - işareti.
  • Sekizlik taban için 0 öneki (yalnızca taban = 8 veya 0 olduğunda geçerlidir).
  • Onaltılık taban için 0x veya 0X öneki (yalnızca taban = 16 veya 0 olduğunda geçerlidir).
  • Bir dizi rakam ve / veya alfabe (taban 10'dan büyükse).

Bağımsız değişken başında bir eksi (-) işareti içeriyorsa, negatif sayı örtük olarak pozitif bir sayı olan işaretsiz uzun uzun int türüne dönüştürülür.

Parametre tabanı için geçerli değerler (0, 2, 3,…, 35, 36). 2 tabanı için (0, 1), 3 tabanı için (0, 1, 2) vb. 11'den 36'ya başlayan bazlar için, geçerli rakamlar alfabeleri içerir.

11 tabanı için geçerli rakamlar kümesi (0, 1,…, 9, A, a), taban 12 için (0, 1,…, 9, A, a, B, b) vb.

Örnek 2: farklı tabanlara sahip wcstoull () işlevi

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

Programı çalıştırdığınızda, çıktı:

 311bzϾϿ'den Unsigned Long Int ile base-5 = 81 End String = bzϾϿ 311bzϾϿ - Unsigned Long Int ile base-12 = 5351 End String = zϾϿ 311bzϾϿ - Unsigned Long Long Int ile base-36 = 5087231 End String = ϾϿ

Wcstoull () işlevi, birincil boşluk olmayan karakter bulunana kadar tüm öndeki boşluk karakterlerini yok sayar.

Genel olarak, wcstoull () işlevi için geçerli bir tamsayı bağımsız değişkeni aşağıdaki biçime sahiptir:

 (boşluk) (- | +) (0 | 0x) (alfanümerik karakterler)

Daha sonra, bu karakterden başlayarak, mümkün olduğunca çok sayıda karakter alarak geçerli bir tamsayı gösterimi oluşturur ve bunları işaretsiz uzun int değerine dönüştürür. Son geçerli karakterden sonra dizeden geriye kalanlar yok sayılır ve sonuç üzerinde hiçbir etkisi yoktur.

Örnek 3: Baştaki beyaz boşluk ve geçersiz dönüştürme için wcstoull () işlevi

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

Programı çalıştırdığınızda, çıktı:

 205Ϣx'den İşaretsiz Uzun Uzun Int'e, taban-5 = 10 Uç Dizesi = 5Ϣx xƜz201'den İşaretsiz Uzun Uzun Int'e, taban-12 = 0 Bitiş Dizesi = xƜz201

Taban 0 ise, sayısal taban dizenin biçimine bakılarak otomatik olarak belirlenir. Ön ek 0 ise, taban sekizliktir (8). Önek 0x veya 0X ise, taban onaltılık (16), aksi takdirde taban ondalıktır (10).

Örnek 4: 0 tabanlı wcstoull () işlevi

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

Programı çalıştırdığınızda, çıktı:

 0539Ẅ 'den Unsigned Long Long Int ile base-0 = 43 End String = 9Ẅ 0xa31 ע' den Unsigned Long Long Int 'a base-0 = 2609 End String = ע 119x ؏ to Unsigned Long Int with base-0 = 119 End String = x ؏

Ilginç makaleler...