C++ Vrsta podataka Char s primjerima

โšก Pametni saลพetak

Tip podataka char u C++ pohranjuje jedan znak, poput slova ili znamenke, koristeฤ‡i njegovu ASCII vrijednost. Ovdje ฤ‡ete nauฤiti deklarirati znakove, ispisivati โ€‹โ€‹ASCII vrijednosti, unositi znakove i pretvarati znak u niz znakova.

  • ๐Ÿ”ค ล to je to: Znak pohranjuje jedan znak koristeฤ‡i njegovu ASCII vrijednost.
  • ๐Ÿ”ข ASCII: Svaki znak se preslikava u numeriฤki ASCII kod, poput 'A' kao 65.
  • ๐Ÿ”ง Izjava: Deklarirajte char s jednostrukim navodnicima, kao ลกto je char grade = 'A';.
  • ๐Ÿ” Pretvorbe: Pretvara char u int za njegovu ASCII vrijednost i natrag.
  • ๐Ÿค– Pomoฤ‡ umjetne inteligencije: AI alati poput GitHub Copilota trenutaฤno obraฤ‘uju znakove i ASCII kod.

C++ Vrsta podataka Char

ล to je Char?

Char je a C++ tip podataka dizajniran za pohranjivanje slova. Char je skraฤ‡enica za alfanumeriฤki znak. To je integralni tip podataka, ลกto znaฤi da je vrijednost pohranjena kao cijeli broj. Znak zauzima veliฤinu memorije od 1 bajta. Takoฤ‘er pohranjuje jedan znak.

ล to je ASCII?

Vrijednost char interpretira se kao ASCII znak. To je sliฤno naฤinu na koji se logiฤke vrijednosti interpretiraju kao istinite ili netoฤne. ASCII je kratica za ameriฤki standardni znak (American Standard). Code za razmjenu informacija. Definira specifiฤan naฤin predstavljanja engleskih znakova kao brojeva.

Brojevi se kreฤ‡u izmeฤ‘u 0 i 127. Na primjer, znak 'a' ekvivalentan je ASCII kodu 97.

Char deklaracija

Izjaviti a char varijabla u C++, koristimo kljuฤnu rijeฤ char. Nakon toga treba slijediti naziv varijable. Varijabla se moลพe inicijalizirati u trenutku deklaracije. Vrijednost varijable treba biti unutar jednostrukih navodnika.

Sintaksa

Ovdje je sintaksa za char deklaraciju u C++:

char variable-name;

Naziv varijable je naziv koji se treba dodijeliti varijabli.

Ako se vrijednost treba dodijeliti u trenutku deklaracije, moลพete koristiti ovu sintaksu:

char variable-name = 'value';	
  • Ime-varijable je ime varijable char.
  • Vrijednost je vrijednost koju treba dodijeliti char varijabli.

Primjer 1:

#include <iostream>
using namespace std;
int main() {
	char grade = 'B';
	cout << "I scored a: "<<grade;
	return 0;
}

Izlaz:

Char deklaracija

Evo snimke zaslona koda:

Char deklaracija

Code Objaลกnjenje:

  1. Ukljuฤivanje iostream datoteke zaglavlja u naลก kod za koriลกtenje njegovih funkcija.
  2. Ukljuฤivanje std imenskog prostora u naลก kod kako bismo koristili njegove klase bez pozivanja.
  3. Pozivanje funkcije main(). Programsku logiku treba dodati unutar tijela ove funkcije.
  4. Deklarirajte znakovnu varijablu pod nazivom ocjena. Varijabli je takoฤ‘er dodijeljena vrijednost B. Primijetite da je vrijednost varijable unutar jednostrukih navodnika.
  5. Ispiลกite vrijednost varijable ocjene uz ostali tekst na konzoli.
  6. Program mora vratiti vrijednost nakon uspjeลกnog zavrลกetka.
  7. Kraj tijela funkcije main().

Ispis ASCII vrijednosti

Kao ลกto je gore navedeno, svaki znak se tumaฤi kao ASCII znak. Moguฤ‡e je da dobijete ASCII vrijednost bilo kojeg znaka. Jednostavno proslijedite znak funkciji int(). Taj se proces naziva lijevanje tipa. Pokaลพimo ovo:

Primjer 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;
}

Izlaz:

Ispis ASCII vrijednosti

Evo snimke zaslona koda:

Ispis ASCII vrijednosti

Code Objaลกnjenje:

  1. Ukljuฤivanje iostream datoteke zaglavlja u naลก kod kako bismo koristili njezine funkcije.
  2. Ukljuฤivanje std imenskog prostora u naลก kod kako bismo koristili njegove klase bez pozivanja.
  3. Pozivanje funkcije main(). Programsku logiku treba dodati unutar tijela ove funkcije.
  4. Deklarirajte char varijablu pod imenom ch.
  5. Ispiลกite tekst na konzoli. Tekst traลพi od korisnika da unese vrijednost za varijablu ch.
  6. Proฤitaj korisniฤki unos s tipkovnice i pohrani ga u varijablu ch.
  7. Ispiลกite tekst na konzoli. Tekst ฤ‡e ukljuฤivati โ€‹โ€‹znak koji ste unijeli za varijablu ch, ASCII vrijednost ovog znaka i drugi tekst.
  8. Program mora vratiti vrijednost nakon uspjeลกnog zavrลกetka.
  9. Kraj tijela funkcije main().

Ispis vrijednosti znakova

S obzirom na ASCII vrijednost, C++ prevodilac moลพe vratiti odgovarajuฤ‡i znak. Deklarirate char varijablu i dodijelite joj cjelobrojnu vrijednost. Bit ฤ‡e pretvoren u odgovarajuฤ‡u vrijednost znaka.

Primjer 3:

#include <iostream>
using namespace std;
int main() {
	char x = 64, y = 66, z = 71;
	cout << x;
	cout << y;
	cout << z;
	return 0;
}

Izlaz:

Ispis vrijednosti znakova

Evo snimke zaslona koda:

Ispis vrijednosti znakova

Code Objaลกnjenje:

  1. Ukljuฤivanje datoteke zaglavlja iostreama u kรดd. Zatim ฤ‡emo koristiti njegove funkcije bez dobivanja pogreลกaka.
  2. Ukljuฤite prostor imena std u kod. Koristit ฤ‡emo njegove klase bez pozivanja.
  3. Pozivanje funkcije main(). Logika programa trebala bi iฤ‡i u tijelo ove funkcije.
  4. Deklarirajte tri char varijable x, y i z. Njima su dodijeljene cjelobrojne vrijednosti 65, 66 i 67. One ฤ‡e se tretirati kao ASCII vrijednosti za znakove.
  5. Ispiลกite vrijednost varijable x na konzoli. Buduฤ‡i da je x deklariran kao char, bit ฤ‡e vraฤ‡en char s ASCII vrijednoลกฤ‡u 65, to jest A.
  6. Ispiลกite vrijednost varijable y na konzoli. Buduฤ‡i da je y deklariran kao char, bit ฤ‡e vraฤ‡en char s ASCII vrijednoลกฤ‡u 66, to jest B.
  7. Ispiลกite vrijednost varijable z na konzoli. Buduฤ‡i da je z deklariran kao char, bit ฤ‡e vraฤ‡en char s ASCII vrijednoลกฤ‡u 67, to jest C.
  8. Program mora vratiti vrijednost nakon uspjeลกnog zavrลกetka.
  9. Kraj tijela funkcije main().

Unos znakova

Funkciju std::cin moลพemo koristiti za ฤitanje znaka koji je korisnik unio putem tipkovnice. Funkcija std::cin omoguฤ‡it ฤ‡e unos viลกe znakova. Meฤ‘utim, varijabla znak moลพe sadrลพavati samo jedan znak. To znaฤi da ฤ‡e se proฤitati samo prvi uneseni znak.traci pohranjen u varijabli znakova. Ostatak ฤ‡e ostati u meฤ‘uspremniku koji koristi std::cin. Na primjertracNakon toga, izvrลกite naknadne pozive na std::cin.

Primjer 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;
}

Izlaz:

Unos znakova

Evo snimke zaslona koda:

Unos znakova

Code Objaลกnjenje:

  1. Ukljuฤivanje iostream datoteke zaglavlja u naลก kod za koriลกtenje njegovih funkcija.
  2. Ukljuฤite prostor imena std u naลก kod da biste koristili njegove klase bez pozivanja.
  3. Pozivanje funkcije main(). Programsku logiku treba dodati unutar tijela ove funkcije.
  4. Ispiลกite tekst na konzoli.
  5. Deklarirajte znakovnu varijablu pod imenom ch.
  6. ฤŒitanje korisniฤkog unosa s tipkovnice. Unos ฤ‡e biti pohranjen u varijabli ch. Buduฤ‡i da ฤ‡e korisnik upisati niz znakova poput abc, samo ฤ‡e prvi znak, a, biti pohranjen u varijabli ch.
  7. Ispis prvog unesenog znaka, njegovog ASCII koda i drugog teksta na konzoli. ASCII kod se odreฤ‘uje prosljeฤ‘ivanjem znakovne varijable funkciji int().
  8. Proฤitajte sljedeฤ‡i znak koji je unio korisnik. Korisnik neฤ‡e morati unijeti novi znak. Umjesto toga ฤitat ฤ‡e drugi znak koji je unesen, to jest b.
  9. Ispis drugog unesenog znaka, njegovog ASCII koda i drugog teksta na konzoli. ASCII kod se odreฤ‘uje prosljeฤ‘ivanjem znakovne varijable funkciji int().
  10. Program mora vratiti vrijednost nakon uspjeลกnog zavrลกetka.
  11. Kraj tijela funkcije main().

Pretvaranje znaka u niz

Postoji nekoliko naฤina na koje moลพemo pretvoriti znakove ลพice.

Raspravljajmo o njima:

#1: Koriลกtenje konstruktora koji daje klasa niza

To se moลพe uฤiniti pomoฤ‡u sljedeฤ‡e sintakse:

string st(int n,char x);

Parametar n oznaฤava veliฤinu niza koji se ลพeli generirati.

Parametar x je znak koji se pretvara u niz.

Funkcija vraฤ‡a niz.

Primjer 5:

#include<iostream>
#include <string>
using namespace std;
int main() {
	string st(1, 'C');
	cout << "The resulting string is : " << st;
	return 0;
}

Izlaz:

Pretvaranje znaka u niz

Evo snimke zaslona koda:

Pretvaranje znaka u niz

Code Objaลกnjenje:

  1. Ukljuฤivanje iostream datoteke zaglavlja u naลก kod za koriลกtenje njegovih funkcija.
  2. Ukljuฤite datoteku zaglavlja niza u naลก kod da biste koristili njegove funkcije.
  3. Ukljuฤite prostor imena std u naลก kod da biste koristili njegove klase bez pozivanja.
  4. Pozivanje funkcije main(). Programsku logiku treba dodati unutar tijela ove funkcije.
  5. Pretvorite znak โ€œCโ€ u niz duljine 1 i dodijelite rezultirajuฤ‡i niz varijabli st.
  6. Ispiลกite vrijednost niza st na konzoli uz ostali tekst.
  7. Program mora vratiti vrijednost nakon uspjeลกnog zavrลกetka.
  8. Kraj tijela funkcije main().

#2) Koriลกtenje std::string Operatorovi = i +=

Operatori = i += veฤ‡ su pretrpani znakovima. Dva se mogu koristiti za pretvaranje odreฤ‘enog znaka u niz.

Primjer 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;
}

Izlaz:

Pretvaranje znaka u niz

Evo snimke zaslona koda:

Pretvaranje znaka u niz

Code Objaลกnjenje:

  1. Ukljuฤite iostream datoteku zaglavlja u naลก kod da biste koristili njezine funkcije.
  2. Ukljuฤite datoteku zaglavlja niza u naลก kod da biste koristili njegove funkcije.
  3. Ukljuฤite prostor imena std u naลก kod da biste koristili njegove klase bez pozivanja.
  4. Pozivanje funkcije main(). Programsku logiku treba dodati unutar tijela ove funkcije.
  5. Napravite string varijablu imena st.
  6. Napravite znak pod nazivom b s vrijednoลกฤ‡u B.
  7. Dodijelite vrijednost A nizu pod nazivom st.
  8. Upotrijebite operator += za pretvaranje znakova u niz.
  9. Ispiลกite vrijednost niza st na konzoli uz ostali tekst.
  10. Program mora vratiti vrijednost nakon uspjeลกnog zavrลกetka.
  11. Kraj tijela funkcije main().

#3: Koriลกtenje std::string metoda

Klasa std::string dolazi s mnogo preoptereฤ‡enih funkcija koje vam mogu pomoฤ‡i pretvoriti znakove u nizove.

Oni ukljuฤuju:

  • odgurnuti Ova funkcija dodjeljuje odreฤ‘eni znak kraju niza. Preoptereฤ‡en je znakovima. Potrebna je sljedeฤ‡a sintaksa:
    void push_back(char ch)
    

    Parametar ch je znak koji treba promijeniti u niz.

  • dodati Dodjeljuje mnogo kopija odreฤ‘enog znaka nizu. Funkcija ima sljedeฤ‡u sintaksu:
    string& append(size_t n,char ch)
    

    Parametar n oznaฤava vrijeme kada ฤ‡e znak biti dodan.

    Parametar ch je znak koji se dodaje nizu.

  • dodijeliti Ova funkcija zamjenjuje trenutni sadrลพaj niza s n kopija navedenog znaka. Potrebna je sljedeฤ‡a sintaksa:
    string& assign(size_t n,char ch);

    Parametar n oznaฤava ukupni broj kopija za znak.

    Parametar ch je znak koji se kopira u niz.

  • INSERT Funkcija umetanja umeฤ‡e n kopija znaka na poฤetnu poziciju niza, kako je navedeno u argumentima. Potrebna je sljedeฤ‡a sintaksa:
    string& insert(size_t p,size_t n,char ch);

    Parametar p oznaฤava poziciju od poฤetka gdje ฤ‡e se umetnuti znakovi.

    Parametar n oznaฤava ukupni broj kopija za znak.

    Parametar ch je znak koji treba umetnuti u niz.

Primjer 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;
}

Izlaz:

Pretvaranje znaka u niz

Evo snimke zaslona koda:

Pretvaranje znaka u niz

  1. Ukljuฤite iostream datoteku zaglavlja u naลก kod da biste koristili njezine funkcije.
  2. Ukljuฤite datoteku zaglavlja niza u naลก kod da biste koristili njegove funkcije.
  3. Ukljuฤite prostor imena std u naลก kod da biste koristili njegove klase bez pozivanja.
  4. Pozivanje funkcije main(). Programsku logiku treba dodati unutar tijela ove funkcije.
  5. Napravite string varijablu imena st.
  6. Dodijelite znak A kraju niza.
  7. Ispiลกite vrijednost niza st na konzoli uz ostali tekst. Endl (krajnji redak) pomiฤe kursor u sljedeฤ‡i redak.
  8. Postavite vrijednost niza st na prazno.
  9. Dodijelite jedan znak C nizu pod nazivom st.
  10. Ispiลกite vrijednost niza st na konzoli uz ostali tekst. Endl (krajnji redak) pomiฤe kursor u sljedeฤ‡i redak.
  11. Postavite vrijednost niza st na prazno.
  12. Zamijenite sadrลพaj niza st jednim znakom D.
  13. Ispiลกite vrijednost niza st na konzoli uz ostali tekst. Endl (krajnji redak) pomiฤe kursor u sljedeฤ‡i redak.
  14. Umetnite jedan znak E u niz s imenom st iz njegovog prvog indeksa.
  15. Ispiลกite vrijednost niza st na konzoli uz ostali tekst. Endl (krajnji redak) pomiฤe kursor u sljedeฤ‡i redak.
  16. Program mora vratiti vrijednost nakon uspjeลกnog zavrลกetka.
  17. Kraj tijela funkcije main().

#4: Koriลกtenje std::stringstream

Za koriลกtenje ove klase za pretvaranje znaka u niz, umetnite znak u tok.

Bit ฤ‡e zapisani u nizu.

Primjer 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;
}

Izlaz:

Pretvaranje znaka u niz

Evo snimke zaslona koda:

Pretvaranje znaka u niz

Code Objaลกnjenje:

  1. Ukljuฤite iostream datoteku zaglavlja u naลก kod da biste koristili njezine funkcije.
  2. Ukljuฤite datoteku zaglavlja niza u naลก kod da biste koristili njegove funkcije.
  3. Ukljuฤite datoteku zaglavlja sstreama u naลก kod da biste koristili njezine funkcije.
  4. Ukljuฤite prostor imena std u naลก kod da biste koristili njegove klase bez pozivanja.
  5. Pozivanje funkcije main(). Programsku logiku treba dodati unutar tijela ove funkcije.
  6. Napravite string varijablu imena st.
  7. Napravite varijablu toka pod nazivom myst.
  8. Umetnite znak A u objekt toka pod nazivom myst.
  9. Pretvorite objekt toka u niz.
  10. Ispiลกite vrijednost niza st na konzoli uz ostali tekst. Endl (krajnji redak) pomiฤe kursor u sljedeฤ‡i redak.
  11. Program mora vratiti vrijednost nakon uspjeลกnog zavrลกetka.
  12. Kraj tijela funkcije main().

Pitanja i odgovori

Char je tip podataka koji pohranjuje jedan znak, kao ลกto je slovo, znamenka ili simbol. Zauzima jedan bajt i interno sadrลพi ASCII vrijednost znaka.

ASCII je standard koji preslikava znakove u brojeve od 0 do 127. U C++, svaki znak pohranjuje svoj ASCII kod, pa je 'A' 65, a 'a' 97.

Deklarirajte char pomoฤ‡u kljuฤne rijeฤi char i jednog znaka u jednostrukim navodnicima, kao ลกto je char grade = 'A';. Obavezni su jednostruki navodnici, a ne dvostruki.

Pretvori znak u cijeli broj, kao ลกto je int(ch) ili (int)ch, i ispiลกi ga. Ovo prikazuje numeriฤki ASCII kod umjesto samog znaka.

Koristite cin s extracoperator cije za ฤitanje jednog znaka, kao ลกto je cin nakon kojeg slijedi ch. Pohranjuje sljedeฤ‡i znak koji nije razmak, a koji korisnik upiลกe.

Moลพete dodijeliti znak std::stringu, koristiti konstruktor stringa ili ga dodati, kao ลกto je std::string s(1, ch); za izradu stringa od jednog znaka.

AI asistenti poput GitHub Copilota generiraju pretvorbe znakova u ASCII, piลกu petlje za unos znakova i predlaลพu ispravke za uobiฤajene pogreลกke u znakovima i stringovima dok tipkate.

Da. Alati pokretani umjetnom inteligencijom generiraju ASCII kod i kod za pretvorbu velikih i malih slova, obraฤ‘uju pretvorbe znakova u nizove i oznaฤavaju pogreลกke poput koriลกtenja dvostrukih navodnika za jedan znak.

Saลพmite ovu objavu uz: