c string conversion functions
Deze tutorial behandelt de C ++ String Conversion-functies die kunnen worden gebruikt om de string naar int & double en int naar een string enz. Te converteren:
Het is gebruikelijk om tekenreeksen om te zetten in getallen zoals integer en dubbel wanneer we C ++ - toepassingen ontwikkelen.
Dit onderwerp behandelt de functies die kunnen worden gebruikt om de strings effectief te converteren naar int & double en numerieke waarden naar een string.
Lees hier de populaire C ++ trainingsserie.
Wat je leert:
C ++ String Conversion Functies
Wanneer we applicaties programmeren met C ++, wordt het nodig om gegevens van het ene type naar het andere te converteren. De conversie van gegevens moet zodanig zijn dat er helemaal geen gegevens verloren gaan als we de bestaande gegevens naar een nieuw type converteren. Dit geldt met name wanneer we stringgegevens naar getallen converteren en omgekeerd.
In deze tutorial zullen we de verschillende functies bespreken om std :: string-object naar numerieke gegevenstypen te converteren, inclusief integer en dubbel.
Converteer tekenreeks naar numerieke typen in C ++
Over het algemeen zijn er twee veelgebruikte methoden om string naar getallen te converteren in C ++.
- Met behulp van stoi- en atoi-functies die repliceren voor alle numerieke gegevenstypen.
- Stringstream class gebruiken.
Laten we elke methode in detail bespreken.
Stoi en atoi-functies gebruiken
std :: string class ondersteunt verschillende functies om string te converteren naar integer, long, double, float, etc. De conversiefuncties ondersteund door std :: string zijn als volgt in tabelvorm:
Functie | Omschrijving |
---|---|
staand stol stolling | Converteert tekenreeks naar geheel getal (inclusief lange en lange lange typen). |
atoi atol atol | Converteert byte-tekenreeks naar integer (inclusief lange en lange lange typen). |
stond stof stold | Converteert byte-tekenreeks naar drijvende-kommawaarden (inclusief float, double en long double). |
stoul stoull | Converteert een bytestring naar een geheel getal zonder teken (inclusief niet-ondertekende lange en niet-ondertekende lange lange typen). |
Opmerking: Behalve de functies voor het converteren van bytestring (atoi), zijn alle andere conversiefuncties aanwezig vanaf C ++ 11. Nu zullen we de conversiefuncties bespreken om string naar int en string naar double te converteren.
Tekenreeks naar int met behulp van stoi () en atoi ()
staand ()
Functieprototype: stoi (const std :: string & str, std :: size_t * pos = 0, int base = 10);
Parameter (s):
str => String om te converteren
pos => Adres van een geheel getal om het aantal verwerkte tekens op te slaan; standaard = 0
basis => De nummerbasis; standaard = 0
Winstwaarde: Geheel getal equivalent aan opgegeven tekenreeks.
Uitzonderingen: std :: invalid_argument => Als er geen conversie kan worden uitgevoerd.
Std :: out_of_range => Als de geconverteerde waarde buiten het bereik van het resultaattype valt.
Omschrijving: De functie stoi () neemt een string als argument en retourneert een geheel getal. Het genereert een uitzondering als de geconverteerde waarde buiten het bereik valt of als de conversie niet kan worden uitgevoerd.
Laten we een programmeervoorbeeld nemen om deze functie beter te begrijpen.
Uitgang:
stands ('53') is 53
stands ('3.142') is 3
stoi ('31477 met char') is 31477
In het bovenstaande programma hebben we de stoi-functie gebruikt met drie verschillende strings. Merk op dat tijdens het converteren van de stringgegevens naar een geheel getal, de functie de spaties of andere tekens negeert.
Dus in het geval van mystr2 (3.142), heeft de functie alles achter de komma weggegooid. Evenzo werd in het geval van mystr3 ('31477 with char') alleen het nummer in aanmerking genomen. Andere inhoud van de string werd weggegooid.
atoi ()
Functieprototype: int atoi (const char * str);
Parameter (s): str => Pointer naar null-beëindigde byte-string.
Winstwaarde:
Succes => Integer-waarde die overeenkomt met argument str.
Failure => Ongedefinieerd als de geconverteerde waarde buiten het bereik valt.
0 => Als er geen conversie kan worden uitgevoerd.
Omschrijving: Deze functie converteert een bytestring naar een geheel getal. De functie atoi () verwijdert alle witruimten totdat een niet-witruimteteken wordt aangetroffen en neemt vervolgens de tekens een voor een over om een geldige weergave van een geheel getal te vormen en converteert deze naar een geheel getal.
test case management tools open source
Voorbeeld van atoi-functie
Uitgang:
atoi ('24') is 24
atoi ('3.142') is 3
atoi ('23446 met char') is 23446
atoi ('woorden met 3') is 0
Zoals getoond in het bovenstaande programma, neemt de atoi-functie een bytestring als argument en converteert deze naar een geheel getal. De witruimtes of andere tekens worden weggegooid. Als de geconverteerde waarde buiten het bereik valt, wordt 0 geretourneerd.
String om te verdubbelen met behulp van stod ()
Functieprototype: stod (const std :: string & str, std :: size_t * pos = 0);
Parameter (s):
str => String om te converteren
pos => Adres van een geheel getal om het aantal verwerkte tekens op te slaan; standaard = 0
Winstwaarde: Dubbele waarde gelijk aan de opgegeven tekenreeks.
Uitzonderingen:
std :: invalid_argument => Als er geen conversie kan worden uitgevoerd.
std :: out_of_range => Als de geconverteerde waarde buiten het bereik van het resultaattype valt.
Omschrijving: Deze functie converteert een tekenreeks naar een drijvende-kommawaarde. De functie stod () verwijdert alle witruimten totdat een niet-witruimteteken wordt aangetroffen en neemt vervolgens de tekens een voor een om een geldige representatie van een getal met drijvende komma te vormen en converteert deze naar een drijvende komma.
Laten we een voorbeeld bekijken om deze functie te demonstreren.
Uitgang:
stod ('24') is 24
stod ('3.142') is 3.142
stod ('23446 met char') is 23446
Het bovenstaande programma demonstreert het gebruik van de 'stod' -functie. De uitvoer geeft de geconverteerde dubbele waarden van de opgegeven strings aan.
Stringstream Class gebruiken
Het gebruik van de stringstream-klasse is de gemakkelijkste manier om stringwaarden om te zetten in numerieke waarden.
We zullen de stringstream-klasse in detail leren in onze volgende tutorials. Hieronder is een C ++ -programma gegeven dat de conversie van string naar numerieke waarden laat zien.
Uitgang:
Waarde van num: 2508
Waarde van dNum: 3.142
In het bovenstaande programma zien we dat we een stringobject hebben gedeclareerd. Vervolgens declareren we een stringstream-object en geven de string door aan dit object, zodat de string wordt geconverteerd naar een stringstream-object. Vervolgens wordt dit stringstream-object doorgegeven aan een geheel getal met de ‘>>’ -operator die het stringstream-object omzet in een geheel getal.
Evenzo hebben we de string ook omgezet in dubbel. Dus zolang de operator '>>' het gegevenstype ondersteunt, kunnen we een tekenreeks naar elk gegevenstype converteren met behulp van een stringstream-object.
Converteer int naar string in C ++
We kunnen ook numerieke waarden omzetten in tekenreekswaarden. Er zijn twee methoden om numerieke waarden om te zetten in tekenreekswaarden en we zullen die hieronder bespreken.
Gebruik to_string () Functie
Functieprototype: std :: string to_string (typewaarde);
Parameter (s): waarde => Numerieke waarde om te converteren
Winstwaarde: Tekenreekswaarde die de geconverteerde waarde bevat.
Uitzondering: kan std :: bad_alloc gooien
Omschrijving: Deze functie to_string () converteert de numerieke waarde die als argument is doorgegeven naar een stringtype en retourneert de string.
Laten we een voorbeeld van deze functie bekijken met een C ++ -programma.
Uitgang:
De stringvoorstelling van integer: 20 De stringvoorstelling van float: 30.500000
Hier hebben we twee variabelen, elk van het type integer en float. Vervolgens roepen we de to_string-methode twee keer aan met integer en float-argument en converteren beide waarden naar string-waarden. Ten slotte geven we de geconverteerde waarden weer.
Merk op dat het converteren van de drijvende-kommawaarde naar de tekenreeks onverwachte resultaten kan geven, aangezien het aantal significante cijfers nul kan zijn met de to_string-methode.
Stringstream Class gebruiken
Door stringstream class te gebruiken, declareert de stringstream eerst een stream-object dat een numerieke waarde als een stream in het object invoegt. Vervolgens wordt de functie 'str ()' gebruikt om een numerieke waarde intern naar een string te converteren.
Voorbeeld:
Uitgang:
De string gevormd uit integer is: 26082019
De snaar gevormd uit dubbel is: 3.142
In deze lijst hebben we een geheel getal en een dubbele waarde gedefinieerd. Dan hebben we het ostringstream-object waarmee we de numerieke waarde omzetten in het stringstream-object. Dit gebruikt de ‘<<’ operator. Next, we use the str() method on a stringstream object to convert it to a string.
Gevolgtrekking
In deze zelfstudie hebben we conversiefuncties besproken die een tekenreeks naar numerieke typen en numerieke typen terug naar een tekenreeks converteren. We hebben de functies en voorbeelden van stoi (), stod (), atoi (), to_string () functie in detail gezien. We hebben ook enkele van de stringstream class-functies en -methoden besproken die ons helpen bij de genoemde conversies.
Aanbevolen literatuur = >> Converteer String naar geheel getal in Java en Methoden om Int naar String in Java te converteren
bij fout hervat volgende in qtp
In onze volgende zelfstudie leren we conversiefuncties voor tekengegevenstypen.
Bekijk hier de diepgaande C ++ trainingshandleidingen.
Aanbevolen literatuur
- Python String-functies
- C ++ karakterconversiefuncties: char naar int, char naar string
- Java String met String Buffer en String Builder Tutorial
- Stringfuncties in C ++: getline, subtekenreeks, stringlengte en meer
- C # Converteer String naar Int met behulp van Parse, Convert & TryParse-methoden
- VBScript String-functies: VBScript inStr-, Replace-, Mid- en Trim-functies
- Python String Split-zelfstudie
- C # String Tutorial - String-methoden met codevoorbeelden