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

C ++ 'daki wcstoul () 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 int olarak döndürür.

Wcstoul () işlevi, eğer varsa geniş dizgenin son geçerli karakterinden sonraki ilk karaktere işaret edecek 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.

wcstoul () prototipi

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

Wcstoul () 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ş dizgenin içeriğini verilen tabanın işaretsiz bir integral sayısı olarak yorumlar ve işaretsiz bir uzun int değeri döndürür.

wcstoul () 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).

wcstoul () Dönüş değeri

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

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

Örnek 1: wcstoul () 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 value; int base = 10; value = wcstoul(str1, &end, base); wcout << L"String value = " << str1 << endl; wcout << L"Unsigned Long Int value = " << value << endl; wcout << L"End String = " << end << endl; value = wcstoul(str2, &end, base); wcout << L"String value = " << str2 << endl; wcout << L"Unsigned 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 Int değeri = 101 End String = aa ᚶ String değeri = 59 Unsigned Long Int değeri = 59 End String =

Wcstoul () 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 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 wcstoul () 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 Int with base-5 = " << wcstoul(str, &end, 5) << endl; wcout << L"End String = " << end << endl << endl; wcout << str << L" to Unsigned Long Int with base-12 = " << wcstoul(str, &end, 12) << endl; wcout << L"End String = " << end << endl << endl; wcout << str << L" to Unsigned Long Int with base-36 = " << wcstoul(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 Int ile base-36 = 5087231 Bitiş String = ϾϿ

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

Genel olarak, wcstoul () 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 wcstoul () 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 Int with base-5 = " << wcstoul(L" 205u03e2x", &end, 5) << endl; wcout << L"End String = " << end << endl << endl; wcout << L"xu019cz201 to Unsigned Long Int with base-12 = " << wcstoul(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 Int'e, taban-5 = 10 Uç Dizgisi = 5Ϣx xƜz201'den, -12 = 0 Tabanlı Unsigned Uzun Int'e = Bitiş Dizgisi = 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 tabanında wcstoul () 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 Int with base-0 = " << wcstoul(L"0539u1e84", &end, 0) << endl; wcout << L"End String = " << end << endl << endl; wcout << L"0xa31u05e2 to Unsigned Long Int with base-0 = " << wcstoul(L"0xa31u05e2", &end, 0) << endl; wcout << L"End String = " << end << endl << endl; wcout << L"119xu060f to Unsigned Long Int with base-0 = " << wcstoul(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 Int ile base-0 = 43 End String = 9Ẅ 0xa31 ע' den Unsigned Long Int 'a base-0 = 2609 End String = ע 119x ؏ to Unsigned Long Int ile base-0 = 119 End String = x ؏

Ilginç makaleler...