c string conversion functions
Овај водич покрива функције конверзије низа Ц ++ које се могу користити за претварање низа у инт & доубле и инт у низ итд.:
Уобичајено је претварање низа у бројеве попут целобројног и двоструког када развијамо апликације Ц ++.
Ова тема покрива функције које се могу користити за ефикасно претварање низова у инт & доубле и нумеричке вредности у низ.
=> Овде прочитајте популарне серије обуке за Ц ++.
Шта ћете научити:
Ц ++ функције конверзије низа
Када програмирамо апликације користећи Ц ++, постаје неопходно претворити податке из једног у други тип. Конверзија података треба да буде таква да се подаци уопште не губе када постојеће податке претворимо у нови тип. Ово је посебно тачно када претварамо низ података у бројеве и обрнуто.
питања и одговори за интервјуе за осигурање квалитета
У овом упутству ћемо размотрити разне функције претварања објекта стд :: стринг у нумеричке типове података, укључујући целобројне и двоструке.
Претвори низ у нумеричке типове у Ц ++
Генерално, постоје две уобичајене методе за претварање низа у бројеве у Ц ++.
- Коришћење функција стои и атои које се реплицирају за све нумеричке типове података.
- Коришћење класе стрингстреам.
Размотримо детаљно сваку методу.
Коришћење функција стои и атои
класа стд :: стринг подржава разне функције за претварање низа у цјелобројне, дуге, двоструке, плутајуће итд. Функције претворбе које подржава стд :: стринг табулиране су на сљедећи начин:
Функција | Опис |
---|---|
стојећи стол столл | Претвара низ у цео број (укључујући дуге и дуге дуге типове). |
атои атол атол | Претвара низ бајтова у цео број (укључујући дуге и дуге дуге типове). |
стајао прашина столд | Претвара бајтни низ у вредности са покретном зарезом (укључујући флоат, доубле и лонг доубле типове). |
стоул стоулл | Претвара бајтни низ у непотписани цели број (укључујући непотписане дуге и непотписане дуге дуге типове). |
Белешка: Осим функција за претварање бајт низа (атои), све остале функције претворбе су присутне од Ц ++ 11 надаље. Сада ћемо разговарати о функцијама конверзије за претварање низа у инт и низа у двоструко.
Стринг то инт Коришћење стои () и атои ()
стоји ()
Прототип функције: стои (цонст стд :: стринг & стр, стд :: сизе_т * пос = 0, инт басе = 10);
Параметар (и):
стр => Стринг за конверзију
пос => Адреса целог броја за чување броја обрађених знакова; подразумевано = 0
база => Основа броја; подразумевано = 0
Повратна вредност: Цео број еквивалентан наведеном низу.
Изузеци: стд :: инвалид_аргумент => Ако се не може извршити конверзија.
Стд :: оут_оф_ранге => Ако је претворена вредност ван опсега опсега типа резултата.
Опис: Функција стои () узима низ као аргумент и враћа целу вредност. Избациће изузетак ако је претворена вредност ван опсега или ако претворбу није могуће извршити.
Узмимо пример програмирања да бисмо боље разумели ову функцију.
#include #include using namespace std; int main() { string mystr1 = '53'; string mystr2 = '3.142'; string mystr3 = '31477 with char'; int strint1 = stoi(mystr1); int strint2 = stoi(mystr2); int strint3 = stoi(mystr3); cout << 'stoi('' << mystr1 << '') is ' << strint1 << '
'; cout << 'stoi('' << mystr2 << '') is ' << strint2 << '
'; cout << 'stoi('' << mystr3 << '') is ' << strint3 << '
'; }
Излаз:
стоји („53“) је 53
трибине („3.142“) је 3
стои („31477 са знаком“) је 31477
У горе наведеном програму користили смо функцију стои са три различита низа. Имајте на уму да док претвара низ података у целобројну вредност, функција одбацује размаке или било које друге знакове.
Дакле, у случају мистр2 (3.142), функција је одбацила све после децималне тачке. Слично томе, у случају мистр3 („31477 са знаком“), узет је у обзир само број. Остали садржај низа је одбачен.
атои ()
Прототип функције: инт атои (цонст цхар * стр);
Параметар (и): стр => Показивач на низ бајтова који се завршава нулом.
Повратна вредност:
Успех => Целобројна вредност која одговара аргументу стр.
Неуспех => Недефинисано ако је претворена вредност ван опсега.
0 => Ако се не може извршити конверзија.
Опис: Ова функција претвара бајтни низ у целобројну вредност. Функција атои () одбацује све размаке док се не наиђе на знак који није размак, а затим узима знакове један по један да би формирао важећи целобројни приказ и претвара га у цео број.
Пример атои функције
#include #include using namespace std; int main() { const char *mystr1 = '24'; const char *mystr2 = '3.142'; const char *mystr3 = '23446 with char'; const char *mystr4 = 'words with 3'; int mynum1 = atoi(mystr1); int mynum2 = atoi(mystr2); int mynum3 = atoi(mystr3); int mynum4 = atoi(mystr4); cout << 'atoi('' << mystr1 << '') is ' << mynum1 << '
'; cout << 'atoi('' << mystr2 << '') is ' << mynum2 << '
'; cout << 'atoi('' << mystr3 << '') is ' << mynum3 << '
'; cout << 'atoi('' << mystr4 << '') is ' << mynum4 << '
'; }
Излаз:
атои („24“) је 24
атои („3.142“) је 3
атои („23446 са знаком“) је 23446
атои („речи са 3“) је 0
Као што је приказано у горњем програму, функција атои узима низ бајтова као аргумент и претвара га у целобројну вредност. Размаци или било који други знакови се одбацују. Ако је претворена вредност ван опсега, тада се враћа 0.
Низ за удвостручавање помоћу стод ()
Прототип функције: стод (цонст стд :: стринг & стр, стд :: сизе_т * пос = 0);
Параметар (и):
стр => Стринг за конверзију
пос => Адреса целог броја за чување броја обрађених знакова; подразумевано = 0
Повратна вредност: Двострука вредност еквивалентна наведеном низу.
Изузеци:
стд :: инвалид_аргумент => Ако се не може извршити конверзија.
стд :: оут_оф_ранге => Ако је претворена вредност ван опсега опсега типа резултата.
Опис: Ова функција претвара низ у вредност са покретном зарезом. Функција стод () одбацује све размаке све док се не наиђе на знак који није размак, а затим узима знакове један по један да би формирао важећу представу броја са помичном тачком и претвара га у покретну тачку.
Погледајмо пример који демонстрира ову функцију.
#include #include using namespace std; int main() { const char *mystr1 = '24'; const char *mystr2 = '3.142'; const char *mystr3 = '23446 with char'; double mynum1 = stod(mystr1); double mynum2 = stod(mystr2); double mynum3 = stod(mystr3); cout << 'stod('' << mystr1 << '') is ' << mynum1 << '
'; cout << 'stod('' << mystr2 << '') is ' << mynum2 << '
'; cout << 'stod('' << mystr3 << '') is ' << mynum3 << '
'; }
Излаз:
стод („24“) је 24
стод („3.142“) је 3.142
стод („23446 са знаком“) је 23446
добар бесплатни мп3 довнлоадер за андроид
Горњи програм показује употребу функције „стод“. Излаз показује претворене двоструке вредности наведених низова.
Коришћење стрингстреам класе
Коришћење класе стрингстреам је најлакши начин за претварање вредности низа у нумеричке вредности.
Детаљно ћемо учити класу стрингстреам у нашим следећим водичима. Доље је дат програм Ц ++ који демонстрира конверзију низа у нумеричке вредности.
#include #include using namespace std; int main() { string str = '2508'; stringstream sstream(str); int num = 0; sstream >> num; double dNum=0.0; string doublestr = '3.142'; stringstream dstream(doublestr); dstream >>dNum; cout << 'Value of num : ' << num< Излаз:
Вредност броја: 2508
Вредност дНум: 3.142
У горњем програму видимо да смо прогласили објект низа. Затим декларишемо стрингстреам објект и просљеђујемо стринг овом објекту тако да се стринг конвертује у стрингстреам објект. Тада се овај објект стрингстреам-а преноси на целобројну вредност помоћу оператора ‘>>’ који претвара стрингстреам објект у цели број.
Слично томе, конвертовали смо и стринг у доубле. Дакле, све док оператор “>>” подржава тип података, можемо претворити низ у било који тип података помоћу објекта стрингстреам.
Претвори инт у низ у Ц ++
Такође можемо претворити нумеричке вредности у стринг вредности. Постоје две методе претварања нумеричких вредности у вредности низа, а ми ћемо размотрити оне у наставку.
Коришћење функције то_стринг ()
Прототип функције: стд :: стринг то_стринг (вредност типа);
Параметар (и): валуе => Нумеричка вредност за конверзију
Повратна вредност: Вредност низа која садржи претворену вредност.
Изузетак: може бацити стд :: бад_аллоц
Опис: Ова функција то_стринг () претвара нумеричку вредност прослеђену као аргумент у тип низа и враћа низ.
Погледајмо пример ове функције помоћу програма Ц ++.
#include #include // used for string and to_string() using namespace std; int main() { int int_val = 20; float flt_val = 30.50; string str_int = to_string(int_val); string str_float = to_string(flt_val); cout << 'The string representation of integer : '; cout << str_int << endl; cout << 'The string representation of float : '; cout << str_float << endl; return 0; }
Излаз:
Представљање низа целог броја: 20 Представљање низа флоат: 30.500000
најбољи бесплатни заштитни зид за Виндовс 10 2018
Овде имамо две променљиве, свака типа интегер и флоат. Затим два пута позивамо методу то_стринг са целобројним и флоат аргументом и претварамо обе вредности у вредности низа. На крају, приказујемо претворене вредности.
Имајте на уму да претварање вредности с помичном зарезом у низ може дати неочекиване резултате јер број значајних цифара може бити нула методом то_стринг.
Коришћење стрингстреам класе
Користећи класу стрингстреам, стрингстреам прво декларише објект тока који у објект убацује нумеричку вредност као ток. Затим користи функцију „стр ()“ за интерну конверзију нумеричке вредности у стринг.
Пример:
#include #include #include using namespace std; int main() { int num = 26082019; double num_d = 3.142; ostringstream mystr; ostringstream my_dstr; mystr << num; string resultstr = mystr.str(); my_dstr << num_d; string d_str = my_dstr.str(); cout << 'The string formed from integer is : '; cout << resultstr << endl; cout << 'The string formed from double is : '; cout << d_str << endl; return 0; } #include #include #include using namespace std; int main() { int num = 26082019; double num_d = 3.142; ostringstream mystr; ostringstream my_dstr; mystr << num; string resultstr = mystr.str(); my_dstr << num_d; string d_str = my_dstr.str(); cout << 'The string formed from integer is : '; cout << resultstr << endl; cout << 'The string formed from double is : '; cout << d_str << endl; return 0; }
Излаз:
Низ формиран од целог броја је: 26082019
Низ формиран од двоструког износи: 3.142
У овом списку смо дефинисали цео број и двоструку вредност. Тада имамо објект острингстреам помоћу којег прекривамо нумеричку вредност у објект стрингстреам. Ово користи „<<’ operator. Next, we use the str() method on a stringstream object to convert it to a string.
Закључак
У овом упутству смо разговарали о функцијама конверзије које претварају низ у нумеричке типове и нумеричке типове назад у низ. Детаљно смо видели функције и примере функције стои (), стод (), атои (), то_стринг (). Такође смо разговарали о неким функцијама класе стрингстреам и методама које нам помажу да извршимо поменуте конверзије.
Препоручена литература = >> Претвори низ у цео број на Јави и Методе за претварање Инт у Стринг у Јави
У нашем следећем упутству научићемо функције конверзије за типове података знакова.
=> Овде потражите детаљне туторијале за обуку за Ц ++.
Препоручено читање
- Питхон стринг функције
- Функције претварања знакова Ц ++: цхар у инт, цхар у стринг
- Јава Стринг са Стринг Буффер-ом и Стринг Буилдер Туториал
- Функције низа у језику Ц ++: гетлине, подниз, дужина низа и још много тога
- Ц # Претвори низ у Инт помоћу метода рашчлањивања, претварања и испробавања
- ВБСцрипт функције низа: ВБСцрипт инСтр, функције замене, средине и обрезивања
- Питхон Стринг Сплит Туториал
- Водич за стрингове Ц # - Методе низања са примерима кода