c character conversion functions
Acest tutorial acoperă funcțiile de conversie a caracterelor C ++, cum ar fi conversia unui caracter în întreg sau șir și caracter de matrice în șir cu exemple de cod:
În C ++, pe măsură ce dezvoltăm aplicații care implică mai multe tipuri, devine necesară conversia de la un tip la altul. Am văzut deja câteva conversii de bază în tutorialele noastre anterioare.
De asemenea, am văzut conversii de șiruri și conversie de tipuri numerice în șiruri. În afară de funcțiile de conversie a șirurilor pe care le-am văzut deja, există câteva funcții care sunt utilizate pentru a converti un caracter în alte tipuri de date.
Acestea sunt funcțiile care preiau un singur caracter sau o matrice de caractere și apoi le convertesc în alte tipuri de date.
=> Citiți seria Easy C ++ Training.
Ce veți învăța:
- Funcții de conversie a caracterelor C ++
- Concluzie
Funcții de conversie a caracterelor C ++
Când vine vorba de conversia unui singur caracter în întreg sau șir și conversia matricei de caractere în șir, funcțiile de conversie se schimbă ușor față de cea a funcțiilor de conversie a șirului.
testarea unității vs testarea funcțională vs testarea integrării
În acest tutorial vom discuta despre următoarele conversii:
- Conversia caracterului în întreg (caracter în int C ++)
- Conversia caracterului în șir (caracter în șir C ++)
- Conversia matricei de caractere în șir
Primele două conversii se referă la un singur caracter, în timp ce ultima conversie implică o serie de caractere.
Conversia caracterului în întreg - caracter în int
Pentru a converti un singur caracter într-un tip întreg avem două metode, după cum se arată mai jos:
# 1) Prin distribuție
Putem folosi operația de turnare pentru a converti un singur caracter în echivalentul său întreg. În acest caz, va fi afișat echivalentul ASCII al caracterului.
Luați în considerare următoarea conversie,
char a = 'A'; int num = (int) a;
În acest caz, „num” va avea valoarea 65, care este echivalentul ASCII al caracterului „A”.
Alternativ, putem folosi următoarea operație dacă dorim să convertim un caracter numeric într-o valoare întreagă.
char a = '2'; int num = a-48;
Aici, 48 este valoarea ASCII de 0. Ceea ce se face aici este a doua linie a-48 implicit convertește char a în echivalentul său ASCII și apoi îl scade din 48 (50-48), care are ca rezultat valoarea întreagă 2.
# 2) Utilizarea stringstream
După cum s-a văzut deja în tutorialul privind funcțiile de conversie a șirurilor, putem converti un singur caracter reprezentat ca obiect stringstream într-un număr întreg sau orice valoare numerică.
Mai jos este prezentat un cod care demonstrează acest lucru.
#include #include #include using namespace std; int main() { stringstream str; str <> x; cout<<'Converted value of character 5 :'< Ieșire:
Valoarea convertită a caracterului 5: 5
Conversia caracterului în șir - caracter în șir
Există diferite moduri în care putem converti un singur caracter într-un șir.
Să discutăm câteva dintre aceste metode.
# 1) Utilizarea unui constructor furnizat de clasa de șiruri.
Prototipul funcției: șirul s (int n, char x);
Parametri:
n => Dimensiunea șirului de generat.
x => Caracter care urmează să fie convertit într-un șir.
Valoare returnată: s tring obținut prin conversia caracterului.
Descriere: Constructorul clasei șirului ia lungimea șirului (n) și un singur caracter ca parametri și apoi convertește caracterul în șir.
Dat mai jos este un exemplu simplu pentru a demonstra conversia unui singur caracter în șir.
#include #include using namespace std; int main() { string str(1,'A'); cout<<'The string obtained by converting single character : '< Ieșire:
Șirul obținut prin conversia unui singur caracter: A
Conversia de mai sus este una simplă. Numim constructorul șirului și specificăm lungimea șirului (primul parametru) ca 1, deoarece convertim un singur caracter, iar al doilea parametru este caracterul care urmează să fie convertit în șir (în acest caz ‘A’).
# 2) Utilizarea std :: string Operator = Și + =
Operatorii de clasă std :: string, = și + = sunt supraîncărcați pentru caractere. Deci putem folosi acești operatori pentru a converti un singur caracter în șir.
Acest lucru este demonstrat în programul prezentat mai jos.
#include #include using namespace std; int main() { string str; char c = 'B'; str = 'C'; str += c; cout<<'The string obtained by converting single character : '< Ieșire:
Șirul obținut prin conversia unui singur caracter: CB
În acest program, am folosit atât operatorii supraîncărcați, =, cât și + =. Am declarat un obiect șir și apoi i-am atribuit un caracter folosind operatorul =. Apoi folosim + = operator și atribuim un alt caracter obiectului șir.
Vedem că a doua oară când personajul este de fapt concatenat la conținutul deja existent din obiectul șir.
# 3) Utilizarea diferitelor metode ale std :: string
Clasa std :: string acceptă diverse metode supraîncărcate folosind care putem trece un caracter în șir care în cele din urmă convertește caracterul în șir.
Unele dintre metodele clasei std :: string sunt:
- împinge înapoi
Prototipul funcției: nul push_back (char c)
Parametri: c => Caracter care trebuie atribuit șirului
Valoare returnată: returnează nul
Descriere: Această funcție este supraîncărcată pentru caractere și atribuie un caracter la sfârșitul șirului.
- adăuga
Prototipul funcției: string & addend (size_t n, char c)
Parametri:
n => De câte ori trebuie adăugat caracterul.
c => Caracter care trebuie atașat șirului.
Valoare returnată: Șir obținut prin conversia caracterului.
Descriere: Funcția de adăugare a std :: string ia două argumente. Primul argument este de câte ori trebuie copiat caracterul în șir. Al doilea argument este caracterul real care trebuie copiat. Deci funcția de adăugare va atribui acele numeroase copii ale caracterului șirului, așa cum este specificat în primul argument.
- atribui
Prototipul funcției: string & assign (size_t n, char c);
Parametri:
n => Numărul de copii ale personajului.
c => Caracter care trebuie copiat în șir.
Valoare returnată: Șir obținut prin conversia caracterului.
Descriere: Funcția Alocare înlocuiește conținutul șirului curent cu n (primul argument) copii ale caracterului (al doilea argument).
- introduce
Prototipul funcției: șir & inserare (size_t pos, size_t n, char c);
Parametri:
pos => Poziția la începutul cărora trebuie inserate caracterele.
n => Numărul de copii ale personajului.
c => Caracter care urmează să fie inserat în șir.
Valoare returnată: Șir obținut prin conversia caracterului.
Descriere: Această funcție introduce n (al doilea argument) copii ale caracterului (al treilea argument) în poziția de început a șirului specificat de pos (primul argument).
În continuare, vom dezvolta un program care demonstrează toate funcțiile de mai sus ale clasei std :: string.
#include #include using namespace std; int main() { string str; str.push_back('A'); cout<<'push_back single character : '< Ieșire:
push_back caracter unic: A
adăugați un singur caracter: C
atribuiți un singur caracter: D
introduceți un singur caracter: BD
Programul de mai sus demonstrează funcțiile push_back, addend, assign și insert. Ieșirea arată rezultatul sau șirul returnat de fiecare funcție.
# 4) Folosind std :: stringstream
Am discutat deja despre conversia tipurilor numerice într-un șir folosind stringstream. Conversia caracterului într-un șir urmează, de asemenea, același principiu atunci când este utilizată o clasă stringstream.
Caracterul dat este inserat în flux și apoi conținutul este scris în șir.
Să clarificăm acest lucru folosind un program C ++.
#include #include #include using namespace std; int main() { string str; stringstream mystr; mystr<>str; cout<<'The string obtained by converting single character : '< Ieșire:
Șirul obținut prin conversia unui singur caracter: A
Mai întâi inserăm caracterul în obiectul fluxului și apoi tamponul respectiv este scris în obiectul șir. Astfel, ieșirea programului arată conținutul obiectului șir care este un singur caracter.
Convertiți matrice de caractere în șir
Clasa std :: string are multe metode care pot fi utile la tratarea matricelor de caractere. Prin urmare, este recomandabil să convertiți matrice de caractere în obiecte șir și apoi să le utilizați astfel încât să putem scrie programe eficiente.
Există două metode pentru a converti matricea de caractere într-un șir așa cum se arată mai jos.
# 1) Folosind String Constructor
După cum sa discutat deja pentru convertirea unui singur caracter în șir, putem folosi constructorul de șiruri pentru a converti o matrice de caractere în șir.
Prototipul funcției: șir (const char * s);
Parametri: s => matrice de caractere terminată nul care urmează să fie convertită în șir
Valoare returnată: șir => șir convertit
Descriere: Acest constructor suprasolicitat al clasei std :: string ia matricea de caractere sau C-string ca argument și returnează șirul.
Următorul program demonstrează această conversie.
#include #include using namespace std; int main() { char myarray() = {'Software Testing Help'}; string mystr(myarray); cout<<'Converted string: '< Ieșire:
Șir convertit: Ajutor pentru testarea software-ului
Programul de mai sus este destul de simplu. Tot ce trebuie este doar un apel către constructorul std :: string pentru a converti matricea de caractere dată în șir.
# 2) Utilizare = Operator supraîncărcat
O altă abordare pentru a converti matricea de caractere în obiect șir este utilizarea unui operator supraîncărcat =. În aceasta putem atribui direct matricea de caractere obiectului șir folosind = operator și conținutul va fi transmis șirului.
Următorul exemplu arată acest lucru.
#include #include using namespace std; int main() { char myarray() = {'Software Testing Help'}; string mystr; mystr = myarray; cout<<'Converted string: '< Ieșire:
Șir convertit: Ajutor pentru testarea software-ului
Programul de mai sus atribuie matricea direct unui obiect șir folosind = operator care duce la copierea conținutului matricei de caractere la obiectul șir.
Concluzie
Am văzut diverse metode pentru a converti un singur caracter, precum și matrici de caractere în obiecte șir. Deoarece clasa std :: string are multe funcții care ne permit să manipulăm șirurile eficient, este întotdeauna util să lucrăm cu date de caractere, convertindu-le mai întâi în șiruri.
Lecturi suplimentare = >> Conversia Char în Int în Java
Lecturi suplimentare = >> Conversia Char în șir în Java
De asemenea, putem folosi metode de clasă pentru a converti datele de caractere în șiruri. În aceasta, mai întâi inserăm datele în flux și apoi scriem acest buffer într-un obiect șir.
În tutorialele noastre ulterioare, vom discuta în detaliu o clasă stringstream și mai multe funcții de bibliotecă în C ++.
=> Verificați aici pentru a vedea tutorialele de instruire A-Z ale C ++.
Lectură recomandată
- Funcții Python String
- Java String cu buffer de șiruri și tutorial de generare de șiruri
- Funcții de clasificare și transformare a caracterelor C ++
- Funcții șir VBScript: Funcții VBScript inStr, Înlocuire, Mid și Trim
- Tutorial Python String Split
- C # String Tutorial - Metode de șiruri cu exemple de coduri
- Șiruri în C ++ cu exemple
- Funcții de bibliotecă în C ++