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

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

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

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

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

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

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

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

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

  • стр: Широки низ који има приказ интегралног броја.
  • стр_енд: Показивач на показивач на широк знак. Вредност стр_енд функција поставља на следећи знак у стр након последњег важећег знака. Овај параметар такође може бити нулти показивач и у том случају се не користи.
  • основа: База интегралне вредности. Скуп важећих вредности за базу је (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"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; )

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

 Вредност низа = 101аа ᚶ Лонг Инт вредност = 101 Крајњи низ = аа валуе Вредност низа = 59 Лонг Инт вредност = 59 Крајњи низ =

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

  • Опционални знак + или -.
  • Префикс 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 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; )

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

 311бзϾϿ до Лонг Инт са басе-5 = 81 Крајњи низ = бзϾϿ 311бзϾϿ до Лонг Инт са басе-5 = 5351 Крај Стринг = зϾϿ 311бзϾϿ до Лонг Инт са басе-5 = 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 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; )

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

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

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

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

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