Функция Stol() в C++

Funkcia Stol V C



C++ е един от най-популярните и най-старите езици за програмиране, използвани за разработване на високопроизводителни приложения. Използва се сред висококвалифицирани програмисти и начинаещи разработчици. Използва се основно в разработката на игри и е идеален вариант за разработка на операционни системи. Когато пишете код на езика C++, може да срещнете преобразуване на данни от един тип в друг. В тази статия ще се научите да конвертирате низ в дълго цяло число. Доста трудно е да конвертирате низ във всеки друг формат. Езикът за програмиране C++ обаче предоставя бърз и ефективен начин за преобразуване на низове в цели числа.

функция stol в C++

Stol е вградена функция в C++, предоставена в библиотеката std. Той преобразува низове в дълги цели числа. Той преобразува съдържанието на низа в цяло число на посочената база и връща дълго цяло число. Отнема три параметъра, единият е входният низ, вторият е параметърът на обекта, а третият е числовата база. Синтаксисът на функцията stol е даден по-долу, вижте:









Функцията stol приема три параметъра: input_string, size и base. „Input_string“ представлява входния низ, който трябва да бъде преобразуван в дълго цяло число.



Параметърът “size” представлява обект от тип size_t, който носи следващата знакова позиция във входния низ след числовата стойност. Може да бъде нулев указател, ако не се изисква да се използва.





Третият параметър, параметърът 'база', представлява базата, в която трябва да се интерпретира низът. Например, ако е дадена база „2“, низът ще се интерпретира като цяло число с основа 2. Стойността по подразбиране на базовия параметър е 10 и ако е предоставена 0, тогава базовата стойност ще се определя от формата в последователността. Функцията stol връща дългото цяло число, представляващо int стойността на даден низ.

Сега нека разгледаме някои примери, за да разберем как функцията stol работи в C++.



Пример №1

В този пример ще предоставим десетични и шестнадесетични низове, за да проверим как функцията stol ги преобразува в десетични и шестнадесетични цели числа.

„dec = 123456789“ е десетичен низ и се преобразува в дълго цяло число с помощта на функцията stol stol(dec,&size). Обърнете внимание, че основата не е предоставена във функцията като входен параметър, който като резултат използва основата по подразбиране 10 за преобразуване на низа в десетично число. Въпреки това, за преобразуване на низа от шестнадесетично число в десетично число, база 16 се предоставя като входен параметър stol(hex, nullptr, 16). Както знаем, основата 16 представлява шестнадесетично число.

#include

#include <низ>

#include

вътр основен ( )

{

std :: низ дек = '123456789' ;
std :: низ шестнадесетичен = 'a2bf3c' ;
std :: низ :: size_type размер ;
дълго lidec = std :: маса ( декември, и размер ) ;
дълго лихекс = std :: маса ( шестнадесетичен, nullptr , 16 ) ;
std :: cout << 'Въведете десетичен низ' << дек << ' преобразуван в дълго int ' << lidec << ' ' ;
std :: cout << 'Въведете шестнадесетичен низ' << шестнадесетичен << ' преобразуван в дълго int ' << лихекс << ' ' ;
връщане 0 ;


}

Ето следния изход. Имайте предвид, че десетичният низ „123456789“ се преобразува в „123456789“ десетично дълго цяло число. Докато шестнадесетичният низ „a2bf3c“ се преобразува в шестнадесетично число „10665788“. Ето необходимите стъпки, които можете да следвате, за да научите как се извършва преобразуването от функцията stol:

( A2BF3C ) ₁₆ = ( 10 × 16 ) + ( две × 16 ) + ( единадесет × 16 ³ ) + ( петнадесет × 16 ² ) + ( 3 × 16 ¹ ) + ( 12 × 16 ) = ( 10665788 ) ₁₀

Пример # 2

В този пример ще конвертираме двоично число с помощта на функцията stol. Нека да видим кода по-долу и да разберем как работи кодът. „1010110110“ се дава като входен низ, а база 2 се предоставя като входен базов параметър stol(bin,&size, 2), представляващ числото в двоичен формат. Функцията stol ще преобразува двоичното число в десетично число, като изпълни следните стъпки:

( 1010110110 ) = ( 1 × две ) + ( 0 × две ) + ( 1 × две ) + ( 0 × две ) + ( 1 × две ) + ( 1 × две ) + ( 0 × две ³ ) + ( 1 × две ² ) + ( 1 × две ¹ ) + ( 0 × две ) = ( 694 ) ₁₀ #include

#include <низ>

#include

вътр основен ( )

{

std :: низ кошче = '1010110110' ;
std :: низ :: size_type размер ;
дълго либин = std :: маса ( кошче, и размер, две ) ;
std :: cout << 'Въвеждане на двоичен низ' << кошче << ' преобразуван в дълго int ' << либин << ' ' ;
връщане 0 ;


}

Както можете да видите, функцията stol върна същия резултат като общия процес на двоично преобразуване в десетичен.

Пример # 3

В този пример ще видим какво се случва, ако тестваме функцията stol с невалиден вход. Низ от няколко знака ще бъде предоставен на функцията stol и 0 ще бъде предоставена като базова стойност, така че функцията да определи автоматично основата на низа. Ето кода:

Предоставя се набор от знаци като входен низ, който не се определя от никакви базови стойности, т.е. 10, 16, 2 и т.н., така че функцията ще върне стойност за грешка.

#include

#include <низ>

#include

вътр основен ( )

{

std :: низ хр = 'abcdefgh' ;

std :: низ :: size_type размер ;
дълго ул = std :: маса ( chr, nullptr , 0 ) ;
std :: cout << 'Въведете символен низ' << хр << ' преобразуван в дълго int ' << ул << ' ' ;
връщане 0 ;


}

Вижте резултата по-долу. Имайте предвид, че компилаторът е повдигнал изключение „invalid_argument“, тъй като функцията не обслужва низове, които не могат да бъдат определени с никаква базова стойност.

Пример # 4

В този пример ще предоставим комбинация от валиден и невалиден вход, за да видим резултата от функцията stol().

Входящият низ е комбинация от валидни и невалидни знаци, „123xf25“. „0“ се предоставя като входна база, така че функцията определя автоматично основата на входния низ въз основа на типа на знаците.

#include

#include <низ>

#include

вътр основен ( )

{

std :: низ хр = '123xf25' ;
std :: низ :: size_type размер ;
дълго ул = std :: маса ( chr, nullptr , 0 ) ;
std :: cout << 'Въведен низ' << хр << ' преобразуван в дълго int ' << ул << ' ' ;
връщане 0 ;


}

Ето изхода, който показва работата на функцията stol с комбинация от валиден и невалиден вход:

Обърнете внимание, че функцията преобразува „123“ в десетично число „123“ и изхвърли останалата част от низа, тъй като получи невалиден вход „x“. Низът след знака “x” не се преобразува от функцията stol, връщайки само първите знаци на низа като long int.

Заключение

В тази публикация изследвахме функцията stol на езика за програмиране C++. С помощта на някои полезни и прости примери научихме как функцията stol работи с различни типове входове. Функцията stol приема три параметъра, входния низ, който трябва да бъде преобразуван, параметър за размер, който представлява позицията на функцията в низа, и базовата стойност, която представлява основата на входния низ. Връща дългата int стойност на входния низ.