c character conversion functions
Denne vejledning dækker C ++ tegnkonvertering Funktioner som konvertering af en karakter til heltal eller streng & tegnarray til streng med kodeeksempler:
I C ++, når vi udvikler applikationer, der involverer mange typer, bliver det nødvendigt at konvertere fra en type til en anden. Vi har allerede set et par grundlæggende type konverteringer i vores tidligere tutorials.
Vi har også set strengkonverteringer og konvertering af numeriske typer til strenge. Bortset fra de strengkonverteringsfunktioner, vi allerede har set, er der et par funktioner, der bruges til at konvertere et tegn til andre datatyper.
Dette er de funktioner, der tager et enkelt tegn eller et tegnarray og derefter konverterer dem til andre datatyper.
=> Læs gennem Easy C ++ træningsserien.
Hvad du vil lære:
- C ++ tegnkonverteringsfunktioner
- Konklusion
C ++ tegnkonverteringsfunktioner
Når det kommer til konvertering af enkelt tegn til heltal eller streng og konvertering af tegnarray til streng, ændres konverteringsfunktionerne lidt fra strengkonverteringsfunktionerne.
iOS interview spørgsmål og svar til erfaren pdf
I denne vejledning diskuterer vi følgende konverteringer:
- Konvertering af karakter til heltal (char til int C ++)
- Konvertering af tegn til streng (char til streng C ++)
- Konvertering af tegnarray til streng
De to første konverteringer beskæftiger sig med et enkelt tegn, mens den sidste konvertering involverer tegnarray.
Konverter tegn til heltal - char til int
For at konvertere et enkelt tegn til en heltalstype har vi to metoder som angivet nedenfor:
# 1) Ved støbning
Vi kan bruge casting-operation til at konvertere et enkelt tegn til dets heltalækvivalent. I dette tilfælde vises tegnets ASCII-ækvivalent.
Overvej følgende konvertering,
char a = 'A'; int num = (int) a;
I dette tilfælde vil 'num' have værdien 65, som svarer til ASCII for karakteren 'A'.
Alternativt kan vi bruge følgende handling, hvis vi vil konvertere et taltegn til en heltalværdi.
char a = '2'; int num = a-48;
Her er 48 ASCII-værdien på 0. Hvad der gøres her er den anden linje a-48 konverterer implicit tegn a til dets ASCII-ækvivalent og trækker den derefter fra 48 (50-48), der resulterer i heltal 2.
# 2) Brug af stringstream
Som allerede set i vejledningen om strengkonverteringsfunktioner, kan vi konvertere et enkelt tegn, der er repræsenteret som et stringstream-objekt til et heltal eller en hvilken som helst numerisk værdi.
Nedenfor er en kode for at demonstrere dette.
#include #include #include using namespace std; int main() { stringstream str; str <> x; cout<<'Converted value of character 5 :'< Produktion:
Konverteret værdi af tegn 5: 5
Konverter karakter til streng - char til streng
Der er forskellige måder, hvorpå vi kan konvertere et enkelt tegn til en streng.
Lad os diskutere nogle af disse metoder.
# 1) Brug af en konstruktør leveret af strengklasse.
Funktionsprototype: streng s (int n, char x);
Parameter (er):
n => Størrelsen på den streng, der skal genereres.
x => Tegn, der skal konverteres til en streng.
Returværdi: s tring opnået ved konvertering af karakter.
Beskrivelse: Konstruktøren af strengklasse tager længden af strengen (n) og et enkelt tegn som parametre og konverterer derefter tegnet til streng.
Nedenfor er et simpelt eksempel for at demonstrere konvertering af et enkelt tegn til streng.
#include #include using namespace std; int main() { string str(1,'A'); cout<<'The string obtained by converting single character : '< Produktion:
Strengen opnået ved at konvertere enkelt tegn: A
Ovenstående konvertering er enkel. Vi kalder strengkonstruktøren og specificerer længden af strengen (første parameter) som 1, da vi konverterer et enkelt tegn, og den anden parameter er det tegn, der skal konverteres til streng (i dette tilfælde 'A').
# 2) Brug af std :: string Operator = And + =
Std :: strengklasseoperatører, = og + = er overbelastet for tegn. Så vi kan bruge disse operatorer til at konvertere et enkelt tegn til streng.
Dette demonstreres i programmet vist nedenfor.
#include #include using namespace std; int main() { string str; char c = 'B'; str = 'C'; str += c; cout<<'The string obtained by converting single character : '< Produktion:
Strengen opnået ved at konvertere enkelt tegn: CB
I dette program har vi brugt både de overbelastede operatorer, = og + =. Vi har erklæret et strengobjekt og derefter tildelt et tegn til det ved hjælp af = operatoren. Dernæst bruger vi + = operator og tildeler et andet tegn til strengobjektet.
Vi ser, at anden gang karakteren faktisk bliver sammenkædet med det allerede eksisterende indhold i strengobjektet.
# 3) Brug af forskellige metoder til std :: streng
std :: strengklasse understøtter forskellige overbelastede metoder, hvor vi kan sende et tegn til streng, der i sidste ende konverterer tegn til streng.
Nogle af metoderne i std :: string class er:
- skub tilbage
Funktionsprototype: ugyldig push_back (char c)
Parameter (er): c => Tegn, der skal tildeles streng
Returværdi: returnerer ugyldig
Beskrivelse: Denne funktion er overbelastet for tegn, og den tildeler et tegn til slutningen af strengen.
- Tilføj
Funktionsprototype: streng & tilføj (størrelse_t n, tegn c)
Parameter (er):
n => Antal gange tegn skal tilføjes.
c => Tegn, der skal føjes til strengen.
Returværdi: Streng opnået ved konvertering af karakter.
Beskrivelse: Tilføj funktion af std :: streng tager to argumenter. Det første argument er antallet af gange, som tegnet skal kopieres til strengen. Det andet argument er den faktiske karakter, der skal kopieres. Så tilføjelsesfunktionen tildeler de mange kopier af tegn til strengen som angivet i det første argument.
- tildele
Funktionsprototype: streng & tildel (størrelse_t n, tegn c);
Parameter (er):
n => Antal kopier af tegnet.
c => Tegn, der skal kopieres til streng.
Returværdi: Streng opnået ved konvertering af karakter.
Beskrivelse: Tildelingsfunktionen erstatter det aktuelle strengindhold med n (første argument) kopier af tegnet (andet argument).
- indsæt
Funktionsprototype: streng & indsæt (size_t pos, size_t n, char c);
Parameter (er):
pos => Position i starten af hvilke tegn der skal indsættes.
n => Antal kopier af tegnet.
c => Tegn, der skal indsættes i strengen.
Returværdi: Streng opnået ved konvertering af karakter.
Beskrivelse: Denne funktion indsætter n (andet argument) kopier af tegn (tredje argument) i startpositionen for den streng, der er angivet af pos (første argument).
Dernæst udvikler vi et program, der demonstrerer alle ovenstående funktioner i std :: string class.
#include #include using namespace std; int main() { string str; str.push_back('A'); cout<<'push_back single character : '< Produktion:
push_back enkelt tegn: A
tilføje enkelt tegn: C
tildele enkelt tegn: D
indsæt enkelt tegn: BD
Ovenstående program demonstrerer push_back, tilføj, tildel og indsæt funktioner. Outputtet viser resultatet eller strengen, der returneres af hver funktion.
# 4) Brug af std :: stringstream
Vi har allerede diskuteret konvertering af numeriske typer til en streng ved hjælp af stringstream. Konvertering af tegn til en streng følger også det samme princip, når en strengstrømsklasse bruges.
Det givne tegn indsættes i strømmen, og derefter skrives indholdet til strengen.
Lad os gøre dette klart ved hjælp af et C ++ - program.
#include #include #include using namespace std; int main() { string str; stringstream mystr; mystr<>str; cout<<'The string obtained by converting single character : '< Produktion:
Strengen opnået ved at konvertere et enkelt tegn: A
Vi indsætter først tegnet i streamobjektet, og derefter skrives denne buffer til strengobjektet. Programmets output viser således indholdet af strengobjektet, der er et enkelt tegn.
Konverter tegnarray til streng
Klassen std :: streng har mange metoder, der kan være nyttige, når man beskæftiger sig med tegnarrays. Derfor tilrådes det at konvertere tegnarrays til strengobjekter og derefter bruge dem, så vi kan skrive effektive programmer.
Der er to metoder til at konvertere tegnarray til en streng som vist nedenfor.
# 1) Brug af strengkonstruktør
Som allerede diskuteret for at konvertere et enkelt tegn til streng, kan vi gøre brug af strengkonstruktør til at konvertere et tegnarray til streng.
Funktionsprototype: streng (const char * s);
Parametre: s => null-terminated character array, der skal konverteres til streng
Returværdi: streng => konverteret streng
Beskrivelse: Denne overbelastede konstruktør af std :: strengklasse tager tegnarray eller C-streng som et argument og returnerer strengen.
Følgende program demonstrerer denne konvertering.
#include #include using namespace std; int main() { char myarray() = {'Software Testing Help'}; string mystr(myarray); cout<<'Converted string: '< Produktion:
Konverteret streng: Software Testing Help
Ovenstående program er ret simpelt. Alt, hvad der kræves, er kun et opkald til std :: strengkonstruktør for at konvertere det givne tegnarray til streng.
# 2) Brug af = Overbelastet operatør
En anden tilgang til at konvertere tegnarray til strengobjekt er at bruge en overbelastet operator =. I dette kan vi direkte tildele tegnarray til strengobjekt ved hjælp af = operator, og indholdet overføres til streng.
Følgende eksempel viser dette.
#include #include using namespace std; int main() { char myarray() = {'Software Testing Help'}; string mystr; mystr = myarray; cout<<'Converted string: '< Produktion:
Konverteret streng: Software Testing Help
Ovenstående program tildeler arrayet direkte til et strengobjekt ved hjælp af = operator, der resulterer i, at indhold af tegnarray kopieres til strengobjekt.
Konklusion
Vi har set forskellige metoder til at konvertere et enkelt tegn såvel som tegnrække til strengobjekter. Da std :: strengklasse har mange funktioner, der giver os mulighed for at manipulere strengene effektivt, er det altid nyttigt at arbejde med karakterdata ved først at konvertere dem til strengene.
Yderligere læsning = >> Konverter Char til Int i Java
Yderligere læsning = >> Konverter Char til String i Java
Vi kan også bruge klassemetoder til at konvertere karakterdata til strenge. I dette indsætter vi først dataene i strømmen og skriver derefter denne buffer til et strengobjekt.
I vores efterfølgende tutorials vil vi diskutere en stringstream-klasse og flere biblioteksfunktioner i C ++ i detaljer.
=> Tjek her for at se AZ af C ++ træningsvejledninger.
Anbefalet læsning
- Python-strengfunktioner
- Java String med String Buffer og String Builder Tutorial
- C ++ Karakterklassifikations- og transformationsfunktioner
- VBScript-strengfunktioner: VBScript inStr, Erstat, Midt og Trim-funktioner
- Python String Split Tutorial
- C # String Tutorial - Strengmetoder med kodeeksempler
- Strenge i C ++ med eksempler
- Biblioteksfunktioner i C ++