c character conversion functions
Deze tutorial behandelt C ++ tekenconversiefuncties zoals de conversie van een teken naar een geheel getal of een reeks en tekenreeks naar een tekenreeks met codevoorbeelden:
In C ++, aangezien we applicaties ontwikkelen met veel typen, wordt het noodzakelijk om van het ene type naar het andere te converteren. We hebben al enkele basistypeconversies gezien in onze eerdere tutorials.
We hebben ook stringconversies en conversie van numerieke typen naar strings gezien. Afgezien van de stringconversiefuncties die we al hebben gezien, zijn er een paar functies die worden gebruikt om een teken naar andere gegevenstypen te converteren.
Dit zijn de functies die een enkel teken of een tekenreeks nemen en deze vervolgens naar andere gegevenstypen converteren.
Lees de Easy C ++ Training Series door.
Wat je leert:
- C ++ karakterconversiefuncties
- Gevolgtrekking
C ++ karakterconversiefuncties
Als het gaat om de conversie van één teken naar geheel getal of tekenreeks en de conversie van tekenreeks naar tekenreeks, veranderen de conversiefuncties enigszins van die van tekenreeksconversiefuncties.
beste schoonmaaksoftware voor Windows 7
In deze tutorial bespreken we de volgende conversies:
- Conversie van teken naar geheel getal (char naar int C ++)
- Conversie van teken naar tekenreeks (teken naar tekenreeks C ++)
- Conversie van Character Array naar String
De eerste twee conversies hebben betrekking op een enkel teken, terwijl de laatste conversie een tekenreeks betreft.
Converteer teken naar geheel getal - char naar int
Om een enkel teken naar een integer-type te converteren, hebben we twee methoden, zoals hieronder vermeld:
# 1) Door te casten
We kunnen een casting-bewerking gebruiken om een enkel teken om te zetten in het equivalent van een geheel getal. In dit geval wordt het ASCII-equivalent van het teken weergegeven.
Beschouw de volgende conversie,
In dit geval heeft ‘num’ de waarde 65, wat het ASCII-equivalent is van het teken ‘A’.
Als alternatief kunnen we de volgende bewerking gebruiken als we een cijferteken naar een geheel getal willen converteren.
Hier is 48 de ASCII-waarde van 0. Wat hier wordt gedaan, is de tweede regel a-48 converteert impliciet char a naar zijn ASCII-equivalent en trekt het vervolgens af van 48 (50-48), wat resulteert in een integerwaarde 2.
# 2) Stringstream gebruiken
Zoals we al hebben gezien in de tutorial over stringconversiefuncties, kunnen we een enkel teken dat wordt weergegeven als een stringstream-object, converteren naar een geheel getal of een willekeurige numerieke waarde.
Hieronder is een code gegeven om dit aan te tonen.
Uitgang:
Omgerekende waarde van teken 5: 5
Converteer teken naar tekenreeks - teken naar tekenreeks
Er zijn verschillende manieren waarop we een enkel teken naar een string kunnen converteren.
Laten we enkele van deze methoden bespreken.
# 1) Een constructor gebruiken die wordt geleverd door String Class.
Functieprototype: string s (int n, char x);
Parameter (s):
n => Grootte van de te genereren string.
x => Teken dat moet worden geconverteerd naar een string.
Retourwaarde: s tring verkregen door omzetting van karakter.
Omschrijving: De constructor van string class neemt de lengte van de string (n) en een enkel karakter als parameters en converteert het karakter vervolgens naar string.
Hieronder is een eenvoudig voorbeeld gegeven om de conversie van een enkel teken naar een string te demonstreren.
Uitgang:
De tekenreeks die wordt verkregen door een enkel teken te converteren: A
De bovenstaande conversie is eenvoudig. We noemen de stringconstructor en specificeren de lengte van de string (eerste parameter) als 1, aangezien we een enkel teken converteren en de tweede parameter het teken is dat naar een string moet worden geconverteerd (in dit geval ‘A’).
# 2) Gebruik std :: string Operator = En + =
De std :: string class operators, = en + = zijn overbelast voor karakters. We kunnen deze operatoren dus gebruiken om een enkel teken naar een string te converteren.
Dit wordt gedemonstreerd in het onderstaande programma.
Uitgang:
De tekenreeks die wordt verkregen door een enkel teken te converteren: CB
In dit programma hebben we zowel de overbelaste operatoren, =, als + = gebruikt. We hebben een string-object gedeclareerd en er vervolgens een teken aan toegewezen met de operator =. Vervolgens gebruiken we de operator + = en wijzen we een ander teken toe aan het string-object.
We zien dat de tweede keer dat het personage daadwerkelijk wordt samengevoegd met de reeds bestaande inhoud in het string-object.
# 3) Verschillende methoden van std :: string gebruiken
std :: string class ondersteunt verschillende overbelaste methoden waarmee we een teken kunnen doorgeven aan een tekenreeks die uiteindelijk teken in tekenreeks omzet.
Enkele van de methoden van std :: string class zijn:
- terugduwen
Functieprototype: leegte push_back (char c)
Parameter (s): c => Teken dat aan een string moet worden toegewezen
Winstwaarde: geeft ongeldig terug
Omschrijving: Deze functie is voor tekens overbelast en wijst een teken toe aan het einde van de string.
- toevoegen
Functieprototype: string & toevoegen (size_t n, char c)
Parameter (s):
n => Aantal keren dat het teken moet worden toegevoegd.
c => Teken dat aan de string moet worden toegevoegd.
Winstwaarde: String verkregen door conversie van karakter.
Omschrijving: Append-functie van std :: string heeft twee argumenten nodig. Het eerste argument is het aantal keren dat het teken naar de string moet worden gekopieerd. Het tweede argument is het eigenlijke teken dat moet worden gekopieerd. Dus de append-functie zal die vele kopieën van karakter toewijzen aan de string zoals gespecificeerd in het eerste argument.
- toewijzen
Functieprototype: string & toewijzen (size_t n, char c);
Parameter (s):
n => Aantal exemplaren van het personage.
c => Teken dat naar string moet worden gekopieerd.
Winstwaarde: String verkregen door conversie van karakter.
Omschrijving: Assign-functie vervangt de huidige stringinhoud door n (eerste argument) kopieën van het teken (tweede argument).
- invoegen
Functieprototype: string & insert (size_t pos, size_t n, char c);
Parameter (s):
pos => Positie aan het begin waarvan tekens moeten worden ingevoegd.
n => Aantal exemplaren van het personage.
c => Teken dat in de string moet worden ingevoegd.
Winstwaarde: String verkregen door conversie van karakter.
Omschrijving: Deze functie voegt n (tweede argument) kopieën van teken (derde argument) in op de beginpositie van de tekenreeks die is gespecificeerd door pos (eerste argument).
Vervolgens zullen we een programma ontwikkelen dat alle bovenstaande functies van de klasse std :: string laat zien.
Uitgang:
push_back enkel teken: A
één teken toevoegen: C
wijs één teken toe: D
enkel teken invoegen: BD
Het bovenstaande programma demonstreert de functies push_back, toevoegen, toewijzen en invoegen. De uitvoer toont het resultaat of de tekenreeks die door elke functie wordt geretourneerd.
# 4) Met behulp van std :: stringstream
We hebben al gesproken over de conversie van numerieke typen naar een string met behulp van stringstream. De conversie van karakter naar een string volgt ook hetzelfde principe wanneer een stringstream-klasse wordt gebruikt.
Het gegeven karakter wordt in de stream ingevoegd en vervolgens wordt de inhoud naar de string geschreven.
Laten we dit duidelijk maken met een C ++ -programma.
Uitgang:
De string die wordt verkregen door een enkel teken om te zetten: A
We voegen eerst het karakter in het stream-object in en vervolgens wordt die buffer naar het string-object geschreven. De uitvoer van het programma toont dus de inhoud van het string-object dat uit één teken bestaat.
Converteer Character Array naar String
De klasse std :: string heeft veel methoden die van pas kunnen komen bij het omgaan met character arrays. Daarom is het raadzaam om character arrays om te zetten in string-objecten en ze vervolgens te gebruiken zodat we efficiënte programma's kunnen schrijven.
Er zijn twee methoden om de tekenreeks in een tekenreeks om te zetten, zoals hieronder wordt weergegeven.
# 1) String Constructor gebruiken
Zoals al besproken voor het converteren van een enkel teken naar een string, kunnen we de stringconstructor gebruiken om een character array naar string te converteren.
Functieprototype: tekenreeks (const char * s);
Parameters: s => null-beëindigde tekenreeks die moet worden geconverteerd naar een tekenreeks
Winstwaarde: string => geconverteerde string
Omschrijving: Deze overbelaste constructor van de klasse std :: string neemt de character array of C-string als argument en geeft de string terug.
Het volgende programma demonstreert deze conversie.
Uitgang:
Omgezette string: Help bij het testen van software
Het bovenstaande programma is vrij eenvoudig. Het enige dat nodig is, is slechts één aanroep naar de constructor std :: string om de gegeven tekenreeks naar een string te converteren.
# 2) Gebruiken = Overbelaste operator
Een andere benadering om tekenreeks naar tekenreeksobject te converteren, is door een overbelaste operator = te gebruiken. Hierin kunnen we de tekenreeks direct toewijzen aan string-object met behulp van = operator en de inhoud wordt doorgegeven aan string.
Het volgende voorbeeld laat dit zien.
Uitgang:
Omgezette string: Help bij het testen van software
Het bovenstaande programma wijst de array rechtstreeks toe aan een string-object met behulp van de operator =, wat resulteert in het kopiëren van de inhoud van de character-array naar het string-object.
Gevolgtrekking
We hebben verschillende methoden gezien om zowel een enkel teken als tekenarrays naar tekenreeksobjecten te converteren. Omdat de klasse std :: string veel functies heeft waarmee we de strings efficiënt kunnen manipuleren, is het altijd handig om met karaktergegevens te werken door deze eerst naar strings te converteren.
Verder lezen = >> Converteer Char naar Int in Java
Verder lezen = >> Converteer Char naar String in Java
We kunnen ook klassemethoden gebruiken om karaktergegevens om te zetten in strings. Hierin voegen we eerst de gegevens in de stream in en schrijven deze buffer vervolgens naar een stringobject.
In onze volgende tutorials zullen we een stringstream-klasse en meer bibliotheekfuncties in C ++ in detail bespreken.
Kijk hier om A-Z van C ++ trainingshandleidingen te zien.
Aanbevolen literatuur
- Python String-functies
- Java String met String Buffer en String Builder Tutorial
- C ++ karakterclassificatie en transformatiefuncties
- VBScript String-functies: VBScript inStr-, Replace-, Mid- en Trim-functies
- Python String Split-zelfstudie
- C # String-zelfstudie - String-methoden met codevoorbeelden
- Strings in C ++ met voorbeelden
- Bibliotheekfuncties in C ++