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

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

Wcstol () 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ş değerine ayarlanır.

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

 10 tabanı ve geniş dizi L "12abc" için Geçerli sayısal kısım -> 12 Geçerli sayısal kısımdan sonraki ilk karakter -> a

wcstol () prototipi

 uzun wcstol (const wchar_t * str, wchar_t ** str_end, int taban);

Wcstol () işlevi geniş bir dizge, geniş karakter için bir gösterici ve parametresi olarak bir tamsayı değeri alır; geniş dizenin içeriğini verilen tabanın tamsayı olarak yorumlar ve bir uzun int değeri döndürür.

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

wcstol () Dönüş değeri

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

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

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

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

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

Wcstol () işlevi için geçerli bir tam sayı 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ı temellere sahip wcstol () 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 Int with base-5 = " << wcstol(str, &end, 5) << endl; wcout << L"End String = " << end << endl << endl; wcout << str << L" to Long Int with base-5 = " << wcstol(str, &end, 12) << endl; wcout << L"End String = " << end << endl << endl; wcout << str << L" to Long Int with base-5 = " << wcstol(str, &end, 36) << endl; wcout << L"End String = " << end << endl << endl; return 0; )

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

 311bzϾϿ - Long Int ile base-5 = 81 End String = bzϾϿ 311bzϾϿ - Long Int ile base-5 = 5351 End String = zϾϿ 311bzϾϿ - Long Int ile Base-5 = 5087231 Bitiş String = ϾϿ

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

Genel olarak, wcstol () 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 wcstol () 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 Int with base-5 = " << wcstol(L" 205u03e2x", &end, 5) << endl; wcout << L"End String = " << end << endl << endl; wcout << L"xu019cz201 to Long Int with base-12 = " << wcstol(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 Int'e, base-5 = 10 End String = 5Ϣx xƜz201'den Long Int'e, base-12 = 0 ile Uzun Int = 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ı wcstol () 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 Int with base-0 = " << wcstol(L"0539u1e84", &end, 0) << endl; wcout << L"End String = " << end << endl << endl; wcout << L"0xa31u05e2 to Long Int with base-0 = " << wcstol(L"0xa31u05e2", &end, 0) << endl; wcout << L"End String = " << end << endl << endl; wcout << L"119xu060f to Long Int with base-0 = " << wcstol(L"119xu060f", &end, 0) << endl; wcout << L"End String = " << end << endl << endl; return 0; )

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

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

Ilginç makaleler...