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

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

Wcstoll () 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ş dizi L "31ÛÕÕ" Geçerli sayısal kısım -> 31 Geçerli sayısal kısımdan sonraki ilk karakter -> Û

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

wcstoll () prototipi

 uzun uzun wcstoll (const wchar_t * str, wchar_t ** str_end, int base);

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

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

wcstoll () Parametreler

  • str: 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).

wcstoll () Dönüş değeri

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

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

Örnek 1: wcstoll () 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"41u0166u0124xx"; wchar_t str2() = L"127"; wchar_t *end; long long value; int base = 10; value = wcstoll(str1, &end, base); wcout << L"String value = " << str1 << endl; wcout << L"Long Long Int value = " << value << endl; wcout << L"End String = " << end << endl; value = wcstoll(str2, &end, base); wcout << L"String value = " << str2 << endl; wcout << L"Long Long Int value = " << value << endl; wcout << L"End String = " << end << endl; return 0; )

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

 String değeri = 41ŦĤxx Long Long Int değeri = 41 End String = ŦĤxx String değeri = 127 Long Long Int değeri = 127 End String =

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

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 wcstoll () 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 Long Long Int with base-5 = " << wcstoll(str, &end, 5) << endl; wcout << L"End String = " << end << endl << endl; wcout << str << L" to Long Long Int with base-12 = " << wcstoll(str, &end, 12) << endl; wcout << L"End String = " << end << endl << endl; wcout << str << L" to Long Long Int with base-36 = " << wcstoll(str, &end, 36) << endl; wcout << L"End String = " << end << endl << endl; return 0; )

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

 311bzϾϿ - Long Long Int ile base-5 = 81 End String = bzϾϿ 311bzϾϿ - Long Long Int ile base-12 = 5351 End String = zϾϿ 311bzϾϿ - Long Long Int ile base-36 = 5087231 Uç String = ϾϿ

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

Genel olarak, wcstoll () 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)

Ardından, bu karakterden başlayarak, geçerli bir tamsayı gösterimi oluşturan ve bunları uzun bir int değerine dönüştüren mümkün olduğunca çok karakter alı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 wcstoll () işlevi

 #include #include #include using namespace std; int main() ( setlocale(LC_ALL, "en_US.UTF-8"); wchar_t *end; wcout << L" 205u03e2x to Long Long Int with base-5 = " << wcstoll(L" 205u03e2x", &end, 5) << endl; wcout << L"End String = " << end << endl << endl; wcout << L"xu019cz201 to Long Long Int with base-12 = " << wcstoll(L"xu019cz201", &end, 12) << endl; wcout << L"End String = " << end << endl << endl; return 0; )

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

 205Ϣx'den Long Long Int'e, base-5 = 10 End String = 5Ϣx xƜz201'den Long Long Int'e, base-12 = 0 Bitiş String = 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ı wcstoll () işlevi

 #include #include #include using namespace std; int main() ( setlocale(LC_ALL, "en_US.UTF-8"); wchar_t *end; wcout << L"0539u1e84 to Long Long Int with base-0 = " << wcstoll(L"0539u1e84", &end, 0) << endl; wcout << L"End String = " << end << endl << endl; wcout << L"0xa31u05e2 to Long Long Int with base-0 = " << wcstoll(L"0xa31u05e2", &end, 0) << endl; wcout << L"End String = " << end << endl << endl; wcout << L"119xu060f to Long Long Int with base-0 = " << wcstoll(L"119xu060f", &end, 0) << endl; wcout << L"End String = " << end << endl << endl; return 0; )

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

 0539Ẅ - Long Long Int ile base-0 = 43 End String = 9Ẅ 0xa31 ע - Long Long Int ile base-0 = 2609 End String = ע 119x ؏ - Long Long Int ile Base-0 = 119 Bitiş String = x ؏

Ilginç makaleler...