c character conversion functions
Denna handledning täcker C ++ karaktärkonvertering Funktioner som konvertering av en karaktär till heltal eller sträng & karaktärmatris till sträng med kodexempel:
När vi utvecklar applikationer som involverar många typer i C ++ blir det nödvändigt att konvertera från en typ till en annan. Vi har redan sett några grundläggande typkonverteringar i våra tidigare handledning.
Vi har också sett strängkonverteringar och konvertering av numeriska typer till strängar. Bortsett från de strängkonverteringsfunktioner som vi redan har sett finns det några funktioner som används för att konvertera ett tecken till andra datatyper.
Det här är funktionerna som tar ett enda tecken eller en teckenmatris och sedan konverterar dem till andra datatyper.
=> Läs igenom Easy C ++ Training Series.
Vad du kommer att lära dig:
- C ++ - teckenkonverteringsfunktioner
- Slutsats
C ++ - teckenkonverteringsfunktioner
När det gäller konvertering av enstaka tecken till heltal eller sträng och konvertering av teckenuppsättning till sträng, ändras omvandlingsfunktionerna något från de för strängkonverteringsfunktioner.
hur öppnar jag apk-filer
I denna handledning kommer vi att diskutera följande omvandlingar:
- Konvertering av karaktär till heltal (char till int C ++)
- Konvertering av karaktär till sträng (char till sträng C ++)
- Omvandling av karaktärsarray till sträng
De två första omvandlingarna handlar om en enda karaktär medan den senaste konverteringen innefattar teckenuppsättning.
Konvertera karaktär till heltal - char till int
För att konvertera ett enstaka tecken till en heltalstyp har vi två metoder som anges nedan:
# 1) Genom att casta
Vi kan använda gjutning för att konvertera ett enstaka tecken till dess helhetsekvivalent. I det här fallet kommer ASCII-ekvivalenten för tecknet att visas.
Tänk på följande konvertering,
char a = 'A'; int num = (int) a;
I det här fallet kommer 'num' att ha värdet 65 vilket är ASCII-ekvivalent med karaktären 'A'.
Alternativt kan vi använda följande operation om vi vill konvertera ett siffratecken till ett heltal.
char a = '2'; int num = a-48;
Här är 48 ASCII-värdet 0. Vad som görs här är den andra raden a-48 omvandlar implicit char a till dess ASCII-ekvivalent och subtraherar den sedan från 48 (50-48) som resulterar i heltal 2.
# 2) Använda stringstream
Som redan ses i guiden om strängkonverteringsfunktioner kan vi konvertera ett enda tecken som representeras som ett strängströmsobjekt till ett heltal eller något numeriskt värde.
Nedan följer en kod för att demonstrera detta.
#include #include #include using namespace std; int main() { stringstream str; str <> x; cout<<'Converted value of character 5 :'< Produktion:
Konverterat värde för tecken 5: 5
Konvertera karaktär till sträng - char till sträng
Det finns olika sätt på vilka vi kan konvertera ett enstaka tecken till en sträng.
Låt oss diskutera några av dessa metoder.
# 1) Använda en konstruktör som tillhandahålls av strängklass.
Funktionsprototyp: sträng s (int n, char x);
Parameter (er):
n => Storleken på strängen som ska genereras.
x => Tecken som ska konverteras till en sträng.
Returvärde: s tring erhållet genom konvertering av karaktär.
Beskrivning: Konstruktören av strängklass tar längden på strängen (n) och ett enda tecken som parametrar och konverterar sedan tecknet till sträng.
Nedan följer ett enkelt exempel för att visa omvandlingen av ett enda tecken till sträng.
#include #include using namespace std; int main() { string str(1,'A'); cout<<'The string obtained by converting single character : '< Produktion:
Strängen erhållen genom att konvertera enstaka tecken: A
Ovanstående omvandling är enkel. Vi kallar strängkonstruktören och anger längden på strängen (första parametern) som 1 eftersom vi konverterar ett enda tecken och den andra parametern är det tecken som ska konverteras till sträng (i detta fall 'A').
# 2) Använda std :: string Operator = And + =
Std :: string class operator, = och + = är överbelastade för tecken. Så vi kan använda dessa operatörer för att konvertera ett enda tecken till sträng.
Detta visas i programmet nedan.
#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:
Strängen erhållen genom att konvertera enstaka tecken: CB
I det här programmet har vi använt både de överbelastade operatörerna, = och + =. Vi har förklarat ett strängobjekt och sedan tilldelat det ett tecken med operatorn =. Därefter använder vi operatorn + = och tilldelar ett annat tecken till strängobjektet.
Vi ser att andra gången karaktären faktiskt sammanfogas till det redan existerande innehållet i strängobjektet.
# 3) Använda olika metoder för std :: sträng
std :: strängklass stöder olika överbelastade metoder med vilka vi kan skicka ett tecken till sträng som slutligen omvandlar tecken till sträng.
Några av metoderna för std :: string class är:
- trycka tillbaka
Funktionsprototyp: ogiltig push_back (char c)
Parameter (er): c => Tecken som ska tilldelas sträng
Returvärde: återgår ogiltigt
Beskrivning: Denna funktion är överbelastad för tecken och den tilldelar ett tecken till slutet av strängen.
- bifoga
Funktionsprototyp: string & append (size_t n, char c)
Parameter (er):
n => Antal gånger tecknet ska läggas till.
c => Tecken som ska läggas till strängen.
Returvärde: Sträng erhållen genom konvertering av karaktär.
Beskrivning: Lägg till funktion av std :: sträng tar två argument. Det första argumentet är hur många gånger tecknet ska kopieras till strängen. Det andra argumentet är den faktiska karaktär som ska kopieras. Så tilläggsfunktionen tilldelar de många kopiorna av tecken till strängen som anges i det första argumentet.
- tilldela
Funktionsprototyp: sträng & tilldela (size_t n, char c);
Parameter (er):
n => Antal kopior av karaktären.
c => Tecken som ska kopieras till sträng.
Returvärde: Sträng erhållen genom konvertering av karaktär.
Beskrivning: Tilldelningsfunktionen ersätter det aktuella stränginnehållet med n (första argumentet) kopior av tecknet (andra argumentet).
- Föra in
Funktionsprototyp: string & insert (size_t pos, size_t n, char c);
Parameter (er):
pos => Position i början av vilka tecken som ska infogas.
n => Antal kopior av karaktären.
c => Tecken som ska infogas i strängen.
Returvärde: Sträng erhållen genom konvertering av karaktär.
Beskrivning: Denna funktion infogar n (andra argument) kopior av tecken (tredje argument) vid startpositionen för strängen som anges av pos (första argumentet).
Därefter kommer vi att utveckla ett program som visar alla ovanstå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 enstaka tecken: A.
lägg till enstaka tecken: C
tilldela enstaka tecken: D
infoga enstaka tecken: BD
Ovanstående program visar funktionerna push_back, bifoga, tilldela och infoga. Utgången visar resultatet eller strängen som returneras av varje funktion.
# 4) Använda std :: stringstream
Vi har redan diskuterat omvandlingen av numeriska typer till en sträng med hjälp av stringstream. Konvertering av tecken till en sträng följer också samma princip när en strängströmsklass används.
Det givna tecknet infogas i strömmen och sedan skrivs innehållet till strängen.
Låt oss göra detta tydligt med hjälp av ett 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:
Strängen erhållen genom att konvertera ett enda tecken: A
Vi sätter först in tecknet i strömobjektet och sedan skrivs den bufferten till strängobjektet. Således visar programmets resultat innehållet i strängobjektet som är ett enda tecken.
Konvertera teckenarray till sträng
Klass std :: sträng har många metoder som kan komma till hands när man hanterar karaktärsarrayer. Därför är det tillrådligt att konvertera teckenuppsättningar till strängobjekt och sedan använda dem så att vi kan skriva effektiva program.
Det finns två metoder för att konvertera teckenuppsättningen till en sträng enligt nedan.
# 1) Använda strängkonstruktör
Som redan diskuterats för att konvertera ett enda tecken till sträng, kan vi använda strängkonstruktör för att konvertera en teckenuppsättning till sträng.
Funktionsprototyp: sträng (const char * s);
Parametrar: s => null-terminated character array to be converted to string
Returvärde: sträng => konverterad sträng
Beskrivning: Den här överbelastade konstruktören av std :: string class tar teckenmatrisen eller C-strängen som ett argument och returnerar strängen.
Följande program visar denna konvertering.
#include #include using namespace std; int main() { char myarray[] = {'Software Testing Help'}; string mystr(myarray); cout<<'Converted string: '< Produktion:
Konverterad sträng: Software Testing Help
Ovanstående program är ganska enkelt. Allt som krävs är bara ett samtal till std :: strängkonstruktör för att konvertera den givna teckenuppsättningen till sträng.
# 2) Använda = överbelastad operatör
Ett annat tillvägagångssätt för att konvertera teckenuppsättning till strängobjekt är att använda en överbelastad operator =. I detta kan vi direkt tilldela teckenmatrisen till strängobjekt med = operator och innehållet kommer att skickas till sträng.
Följande exempel visar detta.
#include #include using namespace std; int main() { char myarray[] = {'Software Testing Help'}; string mystr; mystr = myarray; cout<<'Converted string: '< Produktion:
Konverterad sträng: Software Testing Help
Ovanstående program tilldelar arrayen direkt till ett strängobjekt med hjälp av = operator som resulterar i att innehållet i teckenuppsättningen kopieras till strängobjektet.
Slutsats
Vi har sett olika metoder för att konvertera ett enstaka tecken såväl som teckenuppsättningar till strängobjekt. Eftersom std :: string class har många funktioner som gör att vi kan manipulera strängarna effektivt, är det alltid bra att arbeta med teckendata genom att konvertera den först till strängar.
Ytterligare läsning = >> Konvertera Char till Int i Java
Ytterligare läsning = >> Konvertera Char till String i Java
Vi kan också använda klassmetoder för att konvertera teckendata till strängar. I detta infogar vi först data i strömmen och skriver sedan bufferten till ett strängobjekt.
I våra efterföljande handledning kommer vi att diskutera en stringstream-klass och fler biblioteksfunktioner i C ++ i detalj.
=> Kolla här för att se A-Z av C ++ träningshandledning.
Rekommenderad läsning
- Python-strängfunktioner
- Java String med String Buffer och String Builder Tutorial
- C ++ Teckenklassificering och omvandlingsfunktioner
- VBScript-strängfunktioner: VBScript inStr, Ersätt, Mellan- och Trimfunktioner
- Python String Split Tutorial
- C # Stränghandledning - Strängmetoder med kodexempel
- Strängar i C ++ med exempel
- Biblioteksfunktioner i C ++