C++ Tip de date Char cu exemple
Ce este Char?
Char este un C++ tip de date conceput pentru stocarea scrisorilor. Char este o abreviere pentru un caracter alfanumeric. Este un tip de date integral, ceea ce รฎnseamnฤ cฤ valoarea este stocatฤ ca un numฤr รฎntreg. Un caracter are o dimensiune de memorie de 1 octet. De asemenea, stocheazฤ un singur caracter.
Ce este ASCII?
Valoarea char este interpretatฤ ca un caracter ASCII. Acest lucru este similar cu modul รฎn care valorile booleene sunt interpretate ca fiind adevฤrate sau false. ASCII este un acronim pentru American Standard Code for Information Interchange. Acesta defineศte un mod specific de a reprezenta caracterele englezeศti ca numere.
Numerele variazฤ รฎntre 0 ศi 127. De exemplu, caracterul โaโ este echivalent cu codul ASCII 97.
Declaraศia Char
A declara a variabila char in C++, folosim cuvรขntul cheie char. Acesta ar trebui sฤ fie urmat de numele variabilei. Variabila poate fi iniศializatฤ รฎn momentul declaraศiei. Valoarea variabilei trebuie inclusฤ รฎntre ghilimele simple.
Sintaxฤ
Iatฤ sintaxa pentru declararea caracterului รฎn C++:
char variable-name;
Numele-variabilฤ este numele care trebuie atribuit variabilei.
Dacฤ o valoare urmeazฤ sฤ fie atribuitฤ รฎn momentul declarฤrii, puteศi utiliza aceastฤ sintaxฤ:
char variable-name = 'value';
- Variabila-nume este numele variabilei char.
- Valoarea este valoarea care trebuie atribuitฤ variabilei char.
Exemplu 1:
#include <iostream>
using namespace std;
int main() {
char grade = 'B';
cout << "I scored a: "<<grade;
return 0;
}
ieศire:
Iatฤ o capturฤ de ecran a codului:
Explicaศia codului:
- Includerea fiศierului antet iostream รฎn codul nostru pentru a-i folosi funcศiile.
- Includerea spaศiului de nume std รฎn codul nostru pentru a-ศi folosi clasele fฤrฤ a-l apela.
- Apelarea funcศiei main(). Logica programului ar trebui adฤugatฤ รฎn corpul acestei funcศii.
- Declaraศi o variabilฤ caracter numitฤ grad. Variabilei i s-a atribuit ศi o valoare B. Observaศi cฤ valoarea variabilei este inclusฤ รฎntre ghilimele simple.
- Tipฤriศi valoarea notei variabile alฤturi de alt text de pe consolฤ.
- Programul trebuie sฤ returneze valoare dupฤ finalizarea cu succes.
- Sfรขrศitul corpului funcศiei main().
Se imprimฤ valoarea ASCII
Dupฤ cum sa menศionat mai sus, fiecare caracter este interpretat ca caracter ASCII. Este posibil sฤ obศineศi valoarea ASCII a oricฤrui caracter. Pur ศi simplu treceศi caracterul la funcศia int(). Acest proces se numeศte turnare tip. Sฤ demonstrฤm asta:
Exemplu 2:
#include <iostream>
using namespace std;
int main() {
char ch;
cout << "Enter any character: ";
cin >> ch;
cout << "The ASCII Value of " << ch << " is " << int(ch);
return 0;
}
ieศire:
Iatฤ o capturฤ de ecran a codului:
Explicaศia codului:
- Includerea fiศierului antet iostream รฎn codul nostru pentru a-ศi utiliza funcศiile.
- Includerea spaศiului de nume std รฎn codul nostru pentru a-i folosi clasele fฤrฤ a-l apela.
- Apelarea funcศiei main(). Logica programului ar trebui adฤugatฤ รฎn corpul acestei funcศii.
- Declaraศi o variabilฤ char numitฤ ch.
- Tipฤriศi ceva text pe consolฤ. Textul cere utilizatorului sฤ introducฤ o valoare pentru variabila ch.
- Citiศi intrarea utilizatorului de la tastaturฤ ศi stocaศi-o รฎn variabila ch.
- Tipฤriศi ceva text pe consolฤ. Textul va include caracterul pe care l-aศi introdus pentru variabila ch, valoarea ASCII a acestui caracter ศi alt text.
- Programul trebuie sฤ returneze valoare dupฤ finalizarea cu succes.
- Sfรขrศitul corpului funcศiei main().
Imprimarea valorii caracterului
Avรขnd รฎn vedere o valoare ASCII, C++ compilatorul poate returna caracterul corespunzฤtor. Declaraศi o variabilฤ char ศi รฎi atribuiศi o valoare รฎntreagฤ. Acesta va fi convertit la valoarea caracterului corespunzฤtoare.
Exemplu 3:
#include <iostream>
using namespace std;
int main() {
char x = 64, y = 66, z = 71;
cout << x;
cout << y;
cout << z;
return 0;
}
ieศire:
Iatฤ o capturฤ de ecran a codului:
Explicaศia codului:
- Includerea fiศierului antet iostream รฎn cod. Apoi vom folosi funcศiile sale fฤrฤ a primi erori.
- Includeศi spaศiul de nume standard รฎn cod. Vom folosi clasele sale fฤrฤ a o numi.
- Apelarea funcศiei main(). Logica programului ar trebui sฤ intre รฎn corpul acestei funcศii.
- Declaraศi trei variabile char x, y ศi z. Celor trei li s-au atribuit valori รฎntregi de 65, 66 ศi 67. Acestea vor fi tratate ca valori ASCII pentru caractere.
- Tipฤriศi valoarea variabilei x pe consolฤ. Deoarece x a fost declarat ca un caracter, caracterul cu valoarea ASCII de 65 va fi returnat, adicฤ A.
- Tipฤriศi valoarea variabilei y pe consolฤ. Deoarece y a fost declarat ca un caracter, caracterul cu valoarea ASCII de 66 va fi returnat, adicฤ B.
- Imprimaศi valoarea variabilei z pe consolฤ. Deoarece z a fost declarat ca un caracter, caracterul cu valoarea ASCII de 67 va fi returnat, adicฤ C.
- Programul trebuie sฤ returneze valoare dupฤ finalizarea cu succes.
- Sfรขrศitul corpului funcศiei main().
Introducerea caracterelor
Putem folosi funcศia std::cin pentru a citi un caracter introdus de utilizator prin tastaturฤ. Std::cin vฤ va permite sฤ introduceศi mai multe caractere. Totuศi, variabila caracter poate conศine doar un caracter. Aceasta รฎnseamnฤ cฤ doar primul caracter introdus va fi extras ศi stocat รฎn variabila caracter. Restul va rฤmรขne รฎn tamponul folosit de std::cin. Pentru a-l extrage, efectuaศi apeluri ulterioare cฤtre std::cin.
Exemplu 4:
#include <iostream>
using namespace std;
int main() {
cout << "Type a sequence of characters: ";
char ch;
cin >> ch;
cout <<"The ASCII code of "<< ch << " is "<< int(ch) << '\n';
cin >> ch;
cout <<"The ASCII code of " << ch << " is "<< int(ch) << '\n';
return 0;
}
ieศire:
Iatฤ o capturฤ de ecran a codului:
Explicaศia codului:
- Includerea fiศierului antet iostream รฎn codul nostru pentru a-i folosi funcศiile.
- Includeศi spaศiul de nume std รฎn codul nostru pentru a-i folosi clasele fฤrฤ a-l apela.
- Apelarea funcศiei main(). Logica programului ar trebui adฤugatฤ รฎn corpul acestei funcศii.
- Tipฤriศi ceva text pe consolฤ.
- Declaraศi o variabilฤ caracter numitฤ ch.
- Citiศi intrarea utilizatorului de la tastaturฤ. Intrarea va fi stocatฤ รฎn variabila ch. Deoarece un utilizator va tasta o secvenศฤ de caractere precum abc, doar primul caracter, a, va fi stocat รฎn variabila ch.
- Se imprimฤ primul caracter introdus, codul sฤu ASCII ศi alt text pe consolฤ. Codul ASCII este determinat prin trecerea variabilei caracter la funcศia int().
- Citiศi urmฤtorul caracter introdus de utilizator. Utilizatorului nu i se va cere sฤ introducฤ un caracter nou. รn schimb, va citi al doilea caracter care a fost introdus, adicฤ b.
- Tipฤrirea celui de-al doilea caracter introdus, codul sฤu ASCII ศi alt text pe consolฤ. Codul ASCII este determinat prin trecerea variabilei caracter la funcศia int().
- Programul trebuie sฤ returneze valoare dupฤ finalizarea cu succes.
- Sfรขrศitul corpului funcศiei main().
Convertirea caracterului รฎn ศir
Existฤ o serie de moduri prin care le putem folosi pentru a converti caracterele รฎn siruri.
Sฤ le discutฤm:
#1: Folosind constructorul dat de o clasฤ String
Acest lucru se poate face folosind urmฤtoarea sintaxฤ:
string st(int n,char x);
Parametrul n indicฤ dimensiunea ศirului care urmeazฤ sฤ fie generat.
Parametrul x este caracterul de convertit รฎntr-un ศir.
Funcศia returneazฤ un ศir.
Exemplu 5:
#include<iostream>
#include <string>
using namespace std;
int main() {
string st(1, 'C');
cout << "The resulting string is : " << st;
return 0;
}
ieศire:
Iatฤ o capturฤ de ecran a codului:
Explicaศia codului:
- Includerea fiศierului antet iostream รฎn codul nostru pentru a-i folosi funcศiile.
- Includeศi fiศierul antet ศir รฎn codul nostru pentru a utiliza funcศiile acestuia.
- Includeศi spaศiul de nume std รฎn codul nostru pentru a-i folosi clasele fฤrฤ a-l apela.
- Apelarea funcศiei main(). Logica programului ar trebui adฤugatฤ รฎn corpul acestei funcศii.
- Convertiศi caracterul โCโ รฎntr-un ศir de 1 lungime ศi atribuiศi ศirul rezultat variabilei st.
- Tipฤriศi valoarea ศirului st pe consolฤ alฤturi de alt text.
- Programul trebuie sฤ returneze valoare dupฤ finalizarea cu succes.
- Sfรขrศitul corpului funcศiei main().
#2) Folosind std::string Operators = ศi +=
Operatorii = ศi += sunt deja supraรฎncฤrcaศi cu caractere. Cele douฤ pot fi folosite pentru a converti un anumit caracter รฎntr-un ศir.
Exemplu 6:
#include<iostream>
#include <string>
using namespace std;
int main() {
string st;
char b = 'B';
st = 'A';
st += b;
cout << "The resulting string is : " << st;
return 0;
}
ieศire:
Iatฤ o capturฤ de ecran a codului:
Explicaศia codului:
- Includeศi fiศierul antet iostream รฎn codul nostru pentru a utiliza funcศiile acestuia.
- Includeศi fiศierul antet ศir รฎn codul nostru pentru a utiliza funcศiile acestuia.
- Includeศi spaศiul de nume std รฎn codul nostru pentru a-i folosi clasele fฤrฤ a-l apela.
- Apelarea funcศiei main(). Logica programului ar trebui adฤugatฤ รฎn corpul acestei funcศii.
- Creaศi o variabilฤ ศir numitฤ st.
- Creaศi un caracter numit b cu valoarea B.
- Atribuiศi o valoare A ศirului numit st.
- Utilizaศi operatorul += pentru a converti caracterele รฎntr-un ศir.
- Tipฤriศi valoarea ศirului st pe consolฤ alฤturi de alt text.
- Programul trebuie sฤ returneze valoare dupฤ finalizarea cu succes.
- Sfรขrศitul corpului funcศiei main().
#3: Folosind metodele std::string
Clasa std::string vine cu multe funcศii supraรฎncฤrcate care vฤ pot ajuta sฤ convertiศi caracterele รฎn ศiruri.
Acestea includ:
- รฎmpinge รฎnapoi Aceastฤ funcศie atribuie un anumit caracter la sfรขrศitul unui ศir. Este supraรฎncฤrcat pentru caractere. Este nevoie de urmฤtoarea sintaxฤ:
void push_back(char ch)
Parametrul ch este caracterul care urmeazฤ sฤ fie schimbat รฎntr-un ศir.
- adฤuga Acesta atribuie multe copii ale unui anumit caracter unui ศir. Funcศia are urmฤtoarea sintaxฤ:
string& append(size_t n,char ch)
Parametrul n indicฤ intervalele de timp รฎn care caracterul va fi adฤugat.
Parametrul ch este caracterul de ataศat la ศir.
- atribui Aceastฤ funcศie รฎnlocuieศte conศinutul curent al ศirului cu n copii ale caracterului specificat. Este nevoie de urmฤtoarea sintaxฤ:
string& assign(size_t n,char ch);
Parametrul n indicฤ numฤrul total de copii pentru caracter.
Parametrul ch este caracterul de copiat รฎn ศir.
- insera Funcศia de inserare insereazฤ n copii ale unui caracter la poziศia de pornire a ศirului, aศa cum este specificat รฎn argumente. Este nevoie de urmฤtoarea sintaxฤ:
string& insert(size_t p,size_t n,char ch);
Parametrul p indicฤ poziศia de la รฎnceput รฎn care vor fi inserate caracterele.
Parametrul n indicฤ numฤrul total de copii pentru caracter.
Parametrul ch este caracterul care trebuie inserat รฎn ศir.
Exemplu 7:
#include<iostream>
#include <string>
using namespace std;
int main() {
string st;
st.push_back('A');
cout << "push_back A returns : " << st << endl;
st = "";
st.append(1, 'C');
cout << "append C returns : " << st << endl;
st = "";
st.assign(1, 'D');
cout << "assign D returns : " << st << endl;
st.insert(0, 1, 'E');
cout << "insert single character returns : " << st << endl;
return 0;
}
ieศire:
Iatฤ o capturฤ de ecran a codului:
- Includeศi fiศierul antet iostream รฎn codul nostru pentru a utiliza funcศiile acestuia.
- Includeศi fiศierul antet ศir รฎn codul nostru pentru a utiliza funcศiile acestuia.
- Includeศi spaศiul de nume std รฎn codul nostru pentru a-i folosi clasele fฤrฤ a-l apela.
- Apelarea funcศiei main(). Logica programului ar trebui adฤugatฤ รฎn corpul acestei funcศii.
- Creaศi o variabilฤ ศir numitฤ st.
- Atribuiศi caracterul A la sfรขrศitul ศirului.
- Tipฤriศi valoarea ศirului st pe consolฤ alฤturi de alt text. Endl (linia finalฤ) mutฤ cursorul pe linia urmฤtoare.
- Setaศi valoarea ศirului st la gol.
- Atribuiศi un singur caracter C ศirului numit st.
- Tipฤriศi valoarea ศirului st pe consolฤ alฤturi de alt text. Endl (linia finalฤ) mutฤ cursorul pe linia urmฤtoare.
- Setaศi valoarea ศirului st la gol.
- รnlocuiศi conศinutul ศirului st cu un singur caracter D.
- Tipฤriศi valoarea ศirului st pe consolฤ alฤturi de alt text. Endl (linia finalฤ) mutฤ cursorul pe linia urmฤtoare.
- Introduceศi un singur caracter E รฎn ศirul numit st din primul sฤu index.
- Tipฤriศi valoarea ศirului st pe consolฤ alฤturi de alt text. Endl (linia finalฤ) mutฤ cursorul pe linia urmฤtoare.
- Programul trebuie sฤ returneze valoare dupฤ finalizarea cu succes.
- Sfรขrศitul corpului funcศiei main().
#4: Folosind std::stringstream
Pentru a utiliza aceastฤ clasฤ pentru a converti caracterul รฎntr-un ศir, inseraศi caracterul รฎn flux.
Vor fi scrise pe ศir.
Exemplu 8:
#include<iostream>
#include <string>
#include <sstream>
using namespace std;
int main() {
string st;
stringstream myst;
myst << 'A';
myst >> st;
cout << "The conversion of the single character returns the string: " << st;
return 0;
}
ieศire:
Iatฤ o capturฤ de ecran a codului:
Explicaศia codului:
- Includeศi fiศierul antet iostream รฎn codul nostru pentru a utiliza funcศiile acestuia.
- Includeศi fiศierul antet ศir รฎn codul nostru pentru a utiliza funcศiile acestuia.
- Includeศi fiศierul antet sstream รฎn codul nostru pentru a-i folosi funcศiile.
- Includeศi spaศiul de nume std รฎn codul nostru pentru a-i folosi clasele fฤrฤ a-l apela.
- Apelarea funcศiei main(). Logica programului ar trebui adฤugatฤ รฎn corpul acestei funcศii.
- Creaศi o variabilฤ ศir numitฤ st.
- Creaศi o variabilฤ de flux numitฤ myst.
- Introduceศi caracterul A รฎn obiectul flux numit myst.
- Convertiศi obiectul flux รฎntr-un ศir.
- Tipฤriศi valoarea ศirului st pe consolฤ alฤturi de alt text. Endl (linia finalฤ) mutฤ cursorul pe linia urmฤtoare.
- Programul trebuie sฤ returneze valoare dupฤ finalizarea cu succes.
- Sfรขrศitul corpului funcศiei main().
Rezumat
- Un caracter este un C++ tip de date utilizat pentru stocarea scrisorilor.
- C++ Char este un tip de date integral, ceea ce รฎnseamnฤ cฤ valoarea este stocatฤ ca un numฤr รฎntreg.
- Ocupฤ o dimensiune de memorie de 1 octet.
- C++ Char stocheazฤ doar un singur caracter.
- Valorile Char sunt interpretate ca caractere ASCII.
- ASCII este un acronim pentru American Standard Code for Information Interchange.
- Prezintฤ un mod specific de reprezentare a caracterelor englezeศti sub formฤ de numere.
- Pentru a vedea valoarea ASCII a unui caracter, o transmitem funcศiei int().
- Pentru a vedea valoarea caracterului corespunzฤtoare valorii ASCII, definim ASCII ca un caracter.









