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:

Declaraศ›ia Char

Iatฤƒ o capturฤƒ de ecran a codului:

Declaraศ›ia Char

Explicaศ›ia codului:

  1. Includerea fiศ™ierului antet iostream รฎn codul nostru pentru a-i folosi funcศ›iile.
  2. Includerea spaศ›iului de nume std รฎn codul nostru pentru a-ศ™i folosi clasele fฤƒrฤƒ a-l apela.
  3. Apelarea funcศ›iei main(). Logica programului ar trebui adฤƒugatฤƒ รฎn corpul acestei funcศ›ii.
  4. 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.
  5. Tipฤƒriศ›i valoarea notei variabile alฤƒturi de alt text de pe consolฤƒ.
  6. Programul trebuie sฤƒ returneze valoare dupฤƒ finalizarea cu succes.
  7. 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:

Se imprimฤƒ valoarea ASCII

Iatฤƒ o capturฤƒ de ecran a codului:

Se imprimฤƒ valoarea ASCII

Explicaศ›ia codului:

  1. Includerea fiศ™ierului antet iostream รฎn codul nostru pentru a-ศ™i utiliza funcศ›iile.
  2. Includerea spaศ›iului de nume std รฎn codul nostru pentru a-i folosi clasele fฤƒrฤƒ a-l apela.
  3. Apelarea funcศ›iei main(). Logica programului ar trebui adฤƒugatฤƒ รฎn corpul acestei funcศ›ii.
  4. Declaraศ›i o variabilฤƒ char numitฤƒ ch.
  5. Tipฤƒriศ›i ceva text pe consolฤƒ. Textul cere utilizatorului sฤƒ introducฤƒ o valoare pentru variabila ch.
  6. Citiศ›i intrarea utilizatorului de la tastaturฤƒ ศ™i stocaศ›i-o รฎn variabila ch.
  7. 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.
  8. Programul trebuie sฤƒ returneze valoare dupฤƒ finalizarea cu succes.
  9. 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:

Imprimarea valorii caracterului

Iatฤƒ o capturฤƒ de ecran a codului:

Imprimarea valorii caracterului

Explicaศ›ia codului:

  1. Includerea fiศ™ierului antet iostream รฎn cod. Apoi vom folosi funcศ›iile sale fฤƒrฤƒ a primi erori.
  2. Includeศ›i spaศ›iul de nume standard รฎn cod. Vom folosi clasele sale fฤƒrฤƒ a o numi.
  3. Apelarea funcศ›iei main(). Logica programului ar trebui sฤƒ intre รฎn corpul acestei funcศ›ii.
  4. 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.
  5. 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.
  6. 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.
  7. 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.
  8. Programul trebuie sฤƒ returneze valoare dupฤƒ finalizarea cu succes.
  9. 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:

Introducerea caracterelor

Iatฤƒ o capturฤƒ de ecran a codului:

Introducerea caracterelor

Explicaศ›ia codului:

  1. Includerea fiศ™ierului antet iostream รฎn codul nostru pentru a-i folosi funcศ›iile.
  2. Includeศ›i spaศ›iul de nume std รฎn codul nostru pentru a-i folosi clasele fฤƒrฤƒ a-l apela.
  3. Apelarea funcศ›iei main(). Logica programului ar trebui adฤƒugatฤƒ รฎn corpul acestei funcศ›ii.
  4. Tipฤƒriศ›i ceva text pe consolฤƒ.
  5. Declaraศ›i o variabilฤƒ caracter numitฤƒ ch.
  6. 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.
  7. 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().
  8. 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.
  9. 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().
  10. Programul trebuie sฤƒ returneze valoare dupฤƒ finalizarea cu succes.
  11. 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:

Convertirea caracterului รฎn ศ™ir

Iatฤƒ o capturฤƒ de ecran a codului:

Convertirea caracterului รฎn ศ™ir

Explicaศ›ia codului:

  1. Includerea fiศ™ierului antet iostream รฎn codul nostru pentru a-i folosi funcศ›iile.
  2. Includeศ›i fiศ™ierul antet ศ™ir รฎn codul nostru pentru a utiliza funcศ›iile acestuia.
  3. Includeศ›i spaศ›iul de nume std รฎn codul nostru pentru a-i folosi clasele fฤƒrฤƒ a-l apela.
  4. Apelarea funcศ›iei main(). Logica programului ar trebui adฤƒugatฤƒ รฎn corpul acestei funcศ›ii.
  5. Convertiศ›i caracterul โ€žCโ€ รฎntr-un ศ™ir de 1 lungime ศ™i atribuiศ›i ศ™irul rezultat variabilei st.
  6. Tipฤƒriศ›i valoarea ศ™irului st pe consolฤƒ alฤƒturi de alt text.
  7. Programul trebuie sฤƒ returneze valoare dupฤƒ finalizarea cu succes.
  8. 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:

Convertirea caracterului รฎn ศ™ir

Iatฤƒ o capturฤƒ de ecran a codului:

Convertirea caracterului รฎn ศ™ir

Explicaศ›ia codului:

  1. Includeศ›i fiศ™ierul antet iostream รฎn codul nostru pentru a utiliza funcศ›iile acestuia.
  2. Includeศ›i fiศ™ierul antet ศ™ir รฎn codul nostru pentru a utiliza funcศ›iile acestuia.
  3. Includeศ›i spaศ›iul de nume std รฎn codul nostru pentru a-i folosi clasele fฤƒrฤƒ a-l apela.
  4. Apelarea funcศ›iei main(). Logica programului ar trebui adฤƒugatฤƒ รฎn corpul acestei funcศ›ii.
  5. Creaศ›i o variabilฤƒ ศ™ir numitฤƒ st.
  6. Creaศ›i un caracter numit b cu valoarea B.
  7. Atribuiศ›i o valoare A ศ™irului numit st.
  8. Utilizaศ›i operatorul += pentru a converti caracterele รฎntr-un ศ™ir.
  9. Tipฤƒriศ›i valoarea ศ™irului st pe consolฤƒ alฤƒturi de alt text.
  10. Programul trebuie sฤƒ returneze valoare dupฤƒ finalizarea cu succes.
  11. 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:

Convertirea caracterului รฎn ศ™ir

Iatฤƒ o capturฤƒ de ecran a codului:

Convertirea caracterului รฎn ศ™ir

  1. Includeศ›i fiศ™ierul antet iostream รฎn codul nostru pentru a utiliza funcศ›iile acestuia.
  2. Includeศ›i fiศ™ierul antet ศ™ir รฎn codul nostru pentru a utiliza funcศ›iile acestuia.
  3. Includeศ›i spaศ›iul de nume std รฎn codul nostru pentru a-i folosi clasele fฤƒrฤƒ a-l apela.
  4. Apelarea funcศ›iei main(). Logica programului ar trebui adฤƒugatฤƒ รฎn corpul acestei funcศ›ii.
  5. Creaศ›i o variabilฤƒ ศ™ir numitฤƒ st.
  6. Atribuiศ›i caracterul A la sfรขrศ™itul ศ™irului.
  7. Tipฤƒriศ›i valoarea ศ™irului st pe consolฤƒ alฤƒturi de alt text. Endl (linia finalฤƒ) mutฤƒ cursorul pe linia urmฤƒtoare.
  8. Setaศ›i valoarea ศ™irului st la gol.
  9. Atribuiศ›i un singur caracter C ศ™irului numit st.
  10. Tipฤƒriศ›i valoarea ศ™irului st pe consolฤƒ alฤƒturi de alt text. Endl (linia finalฤƒ) mutฤƒ cursorul pe linia urmฤƒtoare.
  11. Setaศ›i valoarea ศ™irului st la gol.
  12. รŽnlocuiศ›i conศ›inutul ศ™irului st cu un singur caracter D.
  13. Tipฤƒriศ›i valoarea ศ™irului st pe consolฤƒ alฤƒturi de alt text. Endl (linia finalฤƒ) mutฤƒ cursorul pe linia urmฤƒtoare.
  14. Introduceศ›i un singur caracter E รฎn ศ™irul numit st din primul sฤƒu index.
  15. Tipฤƒriศ›i valoarea ศ™irului st pe consolฤƒ alฤƒturi de alt text. Endl (linia finalฤƒ) mutฤƒ cursorul pe linia urmฤƒtoare.
  16. Programul trebuie sฤƒ returneze valoare dupฤƒ finalizarea cu succes.
  17. 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:

Convertirea caracterului รฎn ศ™ir

Iatฤƒ o capturฤƒ de ecran a codului:

Convertirea caracterului รฎn ศ™ir

Explicaศ›ia codului:

  1. Includeศ›i fiศ™ierul antet iostream รฎn codul nostru pentru a utiliza funcศ›iile acestuia.
  2. Includeศ›i fiศ™ierul antet ศ™ir รฎn codul nostru pentru a utiliza funcศ›iile acestuia.
  3. Includeศ›i fiศ™ierul antet sstream รฎn codul nostru pentru a-i folosi funcศ›iile.
  4. Includeศ›i spaศ›iul de nume std รฎn codul nostru pentru a-i folosi clasele fฤƒrฤƒ a-l apela.
  5. Apelarea funcศ›iei main(). Logica programului ar trebui adฤƒugatฤƒ รฎn corpul acestei funcศ›ii.
  6. Creaศ›i o variabilฤƒ ศ™ir numitฤƒ st.
  7. Creaศ›i o variabilฤƒ de flux numitฤƒ myst.
  8. Introduceศ›i caracterul A รฎn obiectul flux numit myst.
  9. Convertiศ›i obiectul flux รฎntr-un ศ™ir.
  10. Tipฤƒriศ›i valoarea ศ™irului st pe consolฤƒ alฤƒturi de alt text. Endl (linia finalฤƒ) mutฤƒ cursorul pe linia urmฤƒtoare.
  11. Programul trebuie sฤƒ returneze valoare dupฤƒ finalizarea cu succes.
  12. 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.

Rezumaศ›i aceastฤƒ postare cu: