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

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

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

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

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

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

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

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

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

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

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

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

 Вредност низа = 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 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; )

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

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

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

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

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

 0539У у Непотписани дуги инт са базом-0 = 43 Крајњи низ = 9У 0ка31 ע у Непотписани дуги инт са базом-0 = 2609 Крајњи низ = ע 119к ؏ у Непотписани дуги инт са базом-0 = 119 Крајњи низ = к ؏

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