Ц ++ вцстолл () - Ц ++ стандардна библиотека

Функција вцстолл () у Ц ++ интерпретира садржај широког низа као интегрални број наведене базе и враћа његову вредност као лонг лонг инт.

Функција вцстолл () такође поставља показивач да покаже на први знак после последњег важећег знака широког низа ако постоји, у супротном је показивач постављен на нулу.

 За основу 10 и широки низ Л "31УОО" Важећи нумерички део -> 31 Први знак након важећег нумеричког дела -> У

Дефинисано је у заглављу датотеке.

прототип вцстолл ()

 лонг лонг вцстолл (цонст вцхар_т * стр, вцхар_т ** стр_енд, инт база);

Функција вцстолл () за свој параметар узима широки низ стр, показивач на широки знак стр_енд и целобројну вредност - базу.

Затим интерпретира садржај широког низа као интегрални број дате базе и враћа лонг лонг инт вредност.

вцстолл () параметри

  • стр: Широки низ који има приказ интегралног броја.
  • стр_енд: Показивач на показивач на широк знак. Вредност стр_енд функција поставља на следећи знак у стр након последњег важећег знака. Овај параметар такође може бити нулти показивач и у том случају се не користи.
  • основа: База интегралне вредности. Скуп важећих вредности за базу је (0, 2, 3,…, 35, 36).

вцстолл () Повратна вредност

Функција вцстолл () враћа:

  • дугачка дугачка инт вредност (која се конвертује из низа).
  • 0 ако није могла да се изврши ваљана конверзија.

Пример 1: Како функционише функција вцстолл ()?

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

Када покренете програм, излаз ће бити:

 Вредност низа = 41ŦХкк Лонг Лонг Инт вредност = 41 Енд Стринг = ŦХкк Вредност низа = 127 Лонг Лонг Инт вредност = 127 Енд Стринг =

Важећа целобројна вредност за функцију вцстолл () састоји се од:

  • Опционални знак + или -.
  • Префикс 0 за осминску базу (односи се само када је основа = 8 или 0).
  • Префикс 0к или 0Кс за хексадецималну базу (примењује се само када је база = 16 или 0).
  • Низ цифара и / или абецеда (ако је база већа од 10).

Важеће вредности за базу параметара су (0, 2, 3,…, 35, 36). Скуп важећих цифара за базу 2 је (0, 1), за базу 3 је (0, 1, 2) и тако даље. За базе које почињу од 11 до 36, важеће цифре укључују абецеду.

Скуп важећих цифара за базу 11 је (0, 1, …, 9, А, а), за базу 12 је (0, 1, …, 9, А, а, Б, б) и тако даље.

Пример 2: функција вцстолл () са различитим базама

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

Када покренете програм, излаз ће бити:

 311бзϾϿ у Лонг Лонг Инт са базом-5 = 81 Крајњи низ = бзϾϿ 311бзϾϿ у Лонг Лонг Инт са базом-12 = 5351 Крај Стринг = зϾϿ 311бзϾϿ у Лонг Лонг Инт са басе-36 = 5087231 Крајњи низ = ϾϿ

Функција вцстолл () занемарује све водеће размаке све док се не пронађе примарни не-размак.

Генерално, важећи целобројни аргумент за функцију вцстолл () има следећи облик:

 (размак) (- | +) (0 | 0к) (алфанумерички знакови)

Затим, почев од овог знака, потребно је што више знакова који чине ваљану целобројну представу и претварају их у дугу инт вредност.

Шта год је остало од низа након последњег важећег знака, занемарује се и нема утицаја на резултат.

Пример 3: функција вцстолл () за водеће размаке и неважећу конверзију

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

Када покренете програм, излаз ће бити:

 205Ϣк до Лонг Лонг Инт са базом-5 = 10 Крајњи низ = 5Ϣк кƜз201 до Лонг Лонг Инт са базом-12 = 0 Крајњи низ = кƜз201

Ако је основа 0, нумеричка основа се аутоматски одређује гледањем формата низа. Ако је префикс 0, основа је осминска (8). Ако је префикс 0к или 0Кс, основа је хексадецимална (16), иначе је база децимална (10).

Пример 4: функција вцстолл () са базом 0

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

Када покренете програм, излаз ће бити:

 0539У на Лонг Лонг Инт са базом-0 = 43 Крајњи низ = 9У 0ка31 ע на Лонг Лонг Инт са базом-0 = 2609 Крајњи низ = ע 119к ؏ на Лонг Лонг Инт са базом-0 = 119 Крајњи низ = к ؏

Занимљиви Чланци...