C++ Vrsta podataka Char s primjerima
ล 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 tumaฤi se kao ASCII znak. To je sliฤno naฤinu na koji se Booleove vrijednosti tumaฤe kao istinite ili laลพne. ASCII je akronim za ameriฤki standardni kod 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:
Evo snimke zaslona koda:
Objaลกnjenje koda:
- Ukljuฤivanje iostream datoteke zaglavlja u naลก kod za koriลกtenje njegovih funkcija.
- Ukljuฤivanje std imenskog prostora u naลก kod kako bismo koristili njegove klase bez pozivanja.
- Pozivanje funkcije main(). Programsku logiku treba dodati unutar tijela ove funkcije.
- Deklarirajte znakovnu varijablu pod nazivom ocjena. Varijabli je takoฤer dodijeljena vrijednost B. Primijetite da je vrijednost varijable unutar jednostrukih navodnika.
- Ispiลกite vrijednost varijable ocjene uz ostali tekst na konzoli.
- Program mora vratiti vrijednost nakon uspjeลกnog zavrลกetka.
- 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:
Evo snimke zaslona koda:
Objaลกnjenje koda:
- Ukljuฤivanje iostream datoteke zaglavlja u naลก kod kako bismo koristili njezine funkcije.
- Ukljuฤivanje std imenskog prostora u naลก kod kako bismo koristili njegove klase bez pozivanja.
- Pozivanje funkcije main(). Programsku logiku treba dodati unutar tijela ove funkcije.
- Deklarirajte char varijablu pod imenom ch.
- Ispiลกite tekst na konzoli. Tekst traลพi od korisnika da unese vrijednost za varijablu ch.
- Proฤitaj korisniฤki unos s tipkovnice i pohrani ga u varijablu ch.
- Ispiลกite tekst na konzoli. Tekst ฤe ukljuฤivati โโznak koji ste unijeli za varijablu ch, ASCII vrijednost ovog znaka i drugi tekst.
- Program mora vratiti vrijednost nakon uspjeลกnog zavrลกetka.
- 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:
Evo snimke zaslona koda:
Objaลกnjenje koda:
- Ukljuฤivanje datoteke zaglavlja iostreama u kรดd. Zatim ฤemo koristiti njegove funkcije bez dobivanja pogreลกaka.
- Ukljuฤite prostor imena std u kod. Koristit ฤemo njegove klase bez pozivanja.
- Pozivanje funkcije main(). Logika programa trebala bi iฤi u tijelo ove funkcije.
- 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.
- 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.
- 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.
- 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.
- Program mora vratiti vrijednost nakon uspjeลกnog zavrลกetka.
- Kraj tijela funkcije main().
Unos znakova
Moลพemo koristiti funkciju std::cin za ฤitanje znakova koje je korisnik unio putem tipkovnice. Std::cin ฤe vam omoguฤiti da unesete mnogo znakova. Meฤutim, karakterna varijabla moลพe sadrลพavati samo jedan znak. To znaฤi da ฤe samo prvi uneseni znak biti ekstrahiran i pohranjen u varijabli znakova. Ostatak ฤe ostati u meฤuspremniku koji koristi std::cin. Da biste ga izdvojili, 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:
Evo snimke zaslona koda:
Objaลกnjenje koda:
- Ukljuฤivanje iostream datoteke zaglavlja u naลก kod za koriลกtenje njegovih funkcija.
- Ukljuฤite prostor imena std u naลก kod da biste koristili njegove klase bez pozivanja.
- Pozivanje funkcije main(). Programsku logiku treba dodati unutar tijela ove funkcije.
- Ispiลกite tekst na konzoli.
- Deklarirajte znakovnu varijablu pod imenom ch.
- ฤ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.
- Ispis prvog unesenog znaka, njegovog ASCII koda i drugog teksta na konzoli. ASCII kod se odreฤuje prosljeฤivanjem znakovne varijable funkciji int().
- 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.
- Ispis drugog unesenog znaka, njegovog ASCII koda i drugog teksta na konzoli. ASCII kod se odreฤuje prosljeฤivanjem znakovne varijable funkciji int().
- Program mora vratiti vrijednost nakon uspjeลกnog zavrลกetka.
- 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:
Evo snimke zaslona koda:
Objaลกnjenje koda:
- Ukljuฤivanje iostream datoteke zaglavlja u naลก kod za koriลกtenje njegovih funkcija.
- Ukljuฤite datoteku zaglavlja niza u naลก kod da biste koristili njegove funkcije.
- Ukljuฤite prostor imena std u naลก kod da biste koristili njegove klase bez pozivanja.
- Pozivanje funkcije main(). Programsku logiku treba dodati unutar tijela ove funkcije.
- Pretvorite znak โCโ u niz duljine 1 i dodijelite rezultirajuฤi niz varijabli st.
- Ispiลกite vrijednost niza st na konzoli uz ostali tekst.
- Program mora vratiti vrijednost nakon uspjeลกnog zavrลกetka.
- 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:
Evo snimke zaslona koda:
Objaลกnjenje koda:
- Ukljuฤite iostream datoteku zaglavlja u naลก kod da biste koristili njezine funkcije.
- Ukljuฤite datoteku zaglavlja niza u naลก kod da biste koristili njegove funkcije.
- Ukljuฤite prostor imena std u naลก kod da biste koristili njegove klase bez pozivanja.
- Pozivanje funkcije main(). Programsku logiku treba dodati unutar tijela ove funkcije.
- Napravite string varijablu imena st.
- Napravite znak pod nazivom b s vrijednoลกฤu B.
- Dodijelite vrijednost A nizu pod nazivom st.
- Upotrijebite operator += za pretvaranje znakova u niz.
- Ispiลกite vrijednost niza st na konzoli uz ostali tekst.
- Program mora vratiti vrijednost nakon uspjeลกnog zavrลกetka.
- 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:
Evo snimke zaslona koda:
- Ukljuฤite iostream datoteku zaglavlja u naลก kod da biste koristili njezine funkcije.
- Ukljuฤite datoteku zaglavlja niza u naลก kod da biste koristili njegove funkcije.
- Ukljuฤite prostor imena std u naลก kod da biste koristili njegove klase bez pozivanja.
- Pozivanje funkcije main(). Programsku logiku treba dodati unutar tijela ove funkcije.
- Napravite string varijablu imena st.
- Dodijelite znak A kraju niza.
- Ispiลกite vrijednost niza st na konzoli uz ostali tekst. Endl (krajnji redak) pomiฤe kursor u sljedeฤi redak.
- Postavite vrijednost niza st na prazno.
- Dodijelite jedan znak C nizu pod nazivom st.
- Ispiลกite vrijednost niza st na konzoli uz ostali tekst. Endl (krajnji redak) pomiฤe kursor u sljedeฤi redak.
- Postavite vrijednost niza st na prazno.
- Zamijenite sadrลพaj niza st jednim znakom D.
- Ispiลกite vrijednost niza st na konzoli uz ostali tekst. Endl (krajnji redak) pomiฤe kursor u sljedeฤi redak.
- Umetnite jedan znak E u niz s imenom st iz njegovog prvog indeksa.
- Ispiลกite vrijednost niza st na konzoli uz ostali tekst. Endl (krajnji redak) pomiฤe kursor u sljedeฤi redak.
- Program mora vratiti vrijednost nakon uspjeลกnog zavrลกetka.
- 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:
Evo snimke zaslona koda:
Objaลกnjenje koda:
- Ukljuฤite iostream datoteku zaglavlja u naลก kod da biste koristili njezine funkcije.
- Ukljuฤite datoteku zaglavlja niza u naลก kod da biste koristili njegove funkcije.
- Ukljuฤite datoteku zaglavlja sstreama u naลก kod da biste koristili njezine funkcije.
- Ukljuฤite prostor imena std u naลก kod da biste koristili njegove klase bez pozivanja.
- Pozivanje funkcije main(). Programsku logiku treba dodati unutar tijela ove funkcije.
- Napravite string varijablu imena st.
- Napravite varijablu toka pod nazivom myst.
- Umetnite znak A u objekt toka pod nazivom myst.
- Pretvorite objekt toka u niz.
- Ispiลกite vrijednost niza st na konzoli uz ostali tekst. Endl (krajnji redak) pomiฤe kursor u sljedeฤi redak.
- Program mora vratiti vrijednost nakon uspjeลกnog zavrลกetka.
- Kraj tijela funkcije main().
Rezime
- Znak je a C++ tip podataka koji se koristi za pohranjivanje slova.
- C++ Char je integralni tip podataka, ลกto znaฤi da je vrijednost pohranjena kao cijeli broj.
- Zauzima memoriju veliฤine 1 bajta.
- C++ Char pohranjuje samo jedan znak.
- Vrijednosti znakova tumaฤe se kao ASCII znakovi.
- ASCII je akronim za ameriฤki standardni kod za razmjenu informacija.
- Navodi specifiฤan naฤin predstavljanja engleskih znakova u obliku brojeva.
- Da bismo vidjeli ASCII vrijednost znaka, prosljeฤujemo ga funkciji int().
- Da bismo vidjeli odgovarajuฤu vrijednost char ASCII vrijednosti, definiramo ASCII kao znak.









