c string conversion functions
Ta vadnica zajema funkcije pretvorbe nizov C ++, ki jih lahko uporabite za pretvorbo niza v int & double in int v niz itd.:
Ko razvijamo aplikacije C ++, je običajno pretvoriti niz v števila, kot sta celo število in dvojno.
Ta tema pokriva funkcije, ki jih lahko uporabimo za učinkovito pretvorbo nizov v int & double in številske vrednosti v niz.
=> Tukaj preberite priljubljeno serijo usposabljanj za C ++
Kaj se boste naučili:
Funkcije pretvorbe nizov C ++
Ko programiramo programe s pomočjo C ++, je treba pretvoriti podatke iz ene vrste v drugo. Pretvorba podatkov mora biti takšna, da se pri pretvorbi obstoječih podatkov v novo vrsto podatki sploh ne izgubijo. To še posebej velja, če pretvorimo nizne podatke v številke in obratno.
najboljši brezplačni DVD ripper za šifrirane DVD-je
V tej vadnici bomo razpravljali o različnih funkcijah za pretvorbo predmeta std :: string v numerične tipe podatkov, vključno s celoštevilskim in dvojnim.
Pretvori niz v številske vrste v jeziku C ++
Na splošno obstajata dve običajni metodi za pretvorbo niza v številke v jeziku C ++.
- Uporaba funkcij stoi in atoi, ki se podvajajo za vse numerične tipe podatkov.
- Uporaba razreda stringstream.
Podrobno se pogovorimo o vsaki metodi.
Uporaba funkcij stoi in atoi
Razred std :: string podpira različne funkcije za pretvorbo niza v celo število, long, double, float itd. Funkcije pretvorbe, ki jih podpira std :: string, so tabelarizirane na naslednji način:
Funkcija | Opis |
---|---|
stoje stol stoll | Pretvori niz v celo število (vključno z dolgimi in dolgimi dolgimi vrstami). |
atoi atol atol | Pretvori bajtni niz v celo število (vključno z dolgimi in dolgimi vrstami). |
stala prah ukradeno | Pretvori bajtni niz v vrednosti s plavajočo vejico (vključno z vrstami float, double in long double). |
Stol stola | Pretvori bajtni niz v nepodpisano celo število (vključno z nepodpisanimi dolgimi in nepodpisanimi dolgimi vrstami). |
Opomba: Razen funkcij za pretvorbo bajtnega niza (atoi) so vse druge funkcije pretvorbe prisotne od C ++ 11 dalje. Zdaj bomo razpravljali o funkcijah pretvorbe za pretvorbo niza v int in niza v dvojno.
String to int Uporaba stoi () in atoi ()
stoječa ()
Prototip funkcije: stoi (const std :: string & str, std :: size_t * pos = 0, int base = 10);
Parametri:
str => Niz za pretvorbo
pos => Naslov celotnega števila za shranjevanje števila obdelanih znakov; privzeto = 0
osnova => Osnova števila; privzeto = 0
Vrnjena vrednost: Celo število, enakovredno določenemu nizu.
Izjeme: std :: invalid_argument => Če pretvorbe ni mogoče izvesti.
Std :: out_of_range => Če pretvorjena vrednost presega obseg vrste rezultata.
Opis: Funkcija stoi () vzame niz kot argument in vrne celoštevilčno vrednost. Vrnila bo izjemo, če je pretvorjena vrednost zunaj obsega ali če pretvorbe ni mogoče izvesti.
Vzemimo primer programiranja, da bomo bolje razumeli to funkcijo.
#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 << '
'; }
Izhod:
stoji (“53”) je 53
stoji (“3.142”) je 3
stoi (»31477 z znakom«) je 31477
V zgornjem programu smo uporabili funkcijo stoi s tremi različnimi nizi. Med pretvorbo nizovnih podatkov v celoštevilčno funkcijo funkcija zavrže presledke ali katere koli druge znake.
Tako je v primeru mystr2 (3.142) funkcija zavrgla vse po decimalni vejici. Podobno je bilo v primeru mystr3 (»31477 z znakom«) upoštevana samo številka. Druga vsebina niza je bila zavržena.
atoi ()
Prototip funkcije: int atoi (const char * str);
Parametri: str => Kazalec na ničelno zaključen bajtni niz.
Vrnjena vrednost:
Uspeh => Celotna vrednost, ki ustreza argumentu str.
Napaka => Nedoločeno, če je pretvorjena vrednost zunaj obsega.
0 => Če pretvorbe ni mogoče izvesti.
Opis: Ta funkcija pretvori bajtni niz v celoštevilčno vrednost. Funkcija atoi () zavrže presledke, dokler ne naleti na znak, ki ni presledek, nato pa znake enega za drugim oblikuje veljavno predstavitev celoštevilskega števila in ga pretvori v celo število.
Primer funkcije atoi
#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 << '
'; }
Izhod:
atoi ('24') je 24
atoi (»3.142«) je 3
atoi (»23446 z znakom«) je 23446
atoi (»besede s 3«) je 0
Kot je prikazano v zgornjem programu, funkcija atoi vzame bajtni niz kot argument in ga pretvori v celoštevilčno vrednost. Praznice ali kateri koli drugi znaki se zavržejo. Če je pretvorjena vrednost zunaj obsega, se vrne 0.
String to double Uporaba stod ()
Prototip funkcije: stod (const std :: string & str, std :: size_t * pos = 0);
Parametri:
str => Niz za pretvorbo
pos => Naslov celotnega števila za shranjevanje števila obdelanih znakov; privzeto = 0
Vrnjena vrednost: Dvojna vrednost, enakovredna določenemu nizu.
Izjeme:
std :: invalid_argument => Če pretvorbe ni mogoče izvesti.
std :: out_of_range => Če je pretvorjena vrednost izven obsega vrste rezultata.
Opis: Ta funkcija pretvori niz v vrednost s plavajočo vejico. Funkcija stod () zavrže presledke, dokler ne naleti na znak, ki ni presledek, nato pa znake enega za drugim oblikuje veljavno predstavitev števila s plavajočo vejico in jo pretvori v plavajočo vejico.
Poglejmo primer, ki dokazuje to funkcijo.
#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 << '
'; }
Izhod:
stod ('24') je 24
stod (»3.142«) je 3.142
stod (»23446 z znakom«) je 23446
Zgornji program prikazuje uporabo funkcije “stod”. Izhod prikazuje pretvorjene dvojne vrednosti določenih nizov.
Uporaba niza razredov
Uporaba razreda stringstream je najlažji način za pretvorbo vrednosti nizov v številske vrednosti.
V naslednjih vajah se bomo podrobno učili predavanja stringstream. Spodaj je program C ++, ki prikazuje pretvorbo niza v številske vrednosti.
#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< Izhod:
Vrednost števila: 2508
Vrednost dNum: 3.142
V zgornjem programu vidimo, da smo razglasili objekt niza. Nato deklariramo objekt niza nizov in mu posredujemo niz, tako da se niz pretvori v objekt niza nizov. Nato se ta objekt niza preda v celoštevilčno vrednost z uporabo operatorja >> >>, ki pretvori objekt niza v celo število.
Podobno smo tudi niz pretvorili v dvojno. Dokler operater “>>” podpira podatkovni tip, lahko pretvorimo niz v kateri koli podatkovni tip z uporabo predmeta niza nizov.
Pretvori int v niz v jeziku C ++
Številske vrednosti lahko pretvorimo tudi v nizne vrednosti. Obstajata dva načina pretvorbe številskih vrednosti v nizne vrednosti, o katerih bomo razpravljali spodaj.
Uporaba funkcije to_string ()
Prototip funkcije: std :: string to_string (vrednost tipa);
Parametri: value => Numerična vrednost za pretvorbo
Vrnjena vrednost: Vrednost niza, ki vsebuje pretvorjeno vrednost.
Izjema: lahko vrže std :: bad_alloc
Opis: Ta funkcija to_string () pretvori številsko vrednost, posredovano kot argument, v vrsto niza in vrne niz.
Oglejmo si primer te funkcije s programom C ++.
#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; }
Izhod:
Zastopanje v nizu celo število: 20 Zastopanje v nizu float: 30.500000
Tu imamo dve spremenljivki, od katerih imata celo število in float. Nato dvakrat pokličemo metodo to_string s celoštevilskim in float argumentom in pretvorimo obe vrednosti v vrednosti nizov. Na koncu prikažemo pretvorjene vrednosti.
Upoštevajte, da lahko pretvorba vrednosti s plavajočo vejico v niz povzroči nepričakovane rezultate, saj je lahko število pomembnih števk nič pri metodi to_string.
Uporaba niza razredov
Z uporabo razreda stringstream stringstream najprej razglasi objekt toka, ki v objekt vstavi številčno vrednost kot tok. Nato uporabi funkcijo “str ()” za interno pretvorbo številske vrednosti v niz.
Primer:
#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; }
Izhod:
Niz, oblikovan iz celega števila, je: 26082019
Niz iz dvojnice je: 3.142
V tem seznamu smo opredelili celo število in dvojno vrednost. Nato imamo objekt ostringstream, s pomočjo katerega številsko vrednost prikrijemo v objekt stringstream. To uporablja „<<’ operator. Next, we use the str() method on a stringstream object to convert it to a string.
Zaključek
V tej vadnici smo razpravljali o funkcijah pretvorbe, ki pretvorijo niz v številske tipe in numerične tipe nazaj v niz. Podrobno smo videli funkcije in primere funkcije stoi (), stod (), atoi (), to_string (). Razpravljali smo tudi o nekaterih funkcijah in metodah razreda nizov, ki nam pomagajo pri omenjenih pretvorbah.
Priporočeno branje = >> Pretvori niz v celo število v Javi in Metode za pretvorbo Int v String v Javi
V naslednji vadnici bomo spoznali funkcije pretvorbe za tipe podatkov znakov.
=> Tukaj preverite vadnice za globoko učenje C ++.
Priporočeno branje
- Funkcije niza Python
- Funkcije pretvorbe znakov C ++: char v int, char v niz
- Java String z vmesnikom String Buffer in String Builder
- Funkcije niza v jeziku C ++: getline, podniz, dolžina niza in drugo
- C # Pretvori niz v Int z uporabo metod Parse, Convert & TryParse
- Funkcije niza VBScript: funkcije VBScript inStr, zamenjava, sredina in obrezovanje
- Vadnica za delitev nizov Python
- C # Vadnica za niz - String metode s primeri kode