C++ Char-tietotyyppi esimerkkien kanssa
โก รlykรคs yhteenveto
Char-tietotyyppi kohdassa C++ tallentaa yksittรคisen merkin, kuten kirjaimen tai numeron, kรคyttรคmรคllรค sen ASCII-arvoa. Tรคssรค opit mรครคrittelemรครคn merkkejรค, tulostamaan ASCII-arvoja, syรถttรคmรครคn merkkejรค ja muuntamaan merkin merkkijonoksi.

Mikรค on Char?
Char on a C++ tietotyyppi, joka on suunniteltu kirjainten tallentamiseen. Char on aakkosnumeerisen merkin lyhenne. Se on integraalinen tietotyyppi, mikรค tarkoittaa, ettรค arvo tallennetaan kokonaislukuna. Merkki vie muistin koon 1 tavu. Se tallentaa myรถs yhden merkin.
Mikรค on ASCII?
Char-arvo tulkitaan ASCII-merkiksi. Tรคmรค on samanlaista kuin totuusarvojen tulkitseminen tosiksi tai epรคtosiksi. ASCII on lyhenne sanoista American Standard. Code tiedonvaihtoa varten. Se mรครคrittelee tietyn tavan esittรครค englanninkielisiรค merkkejรค numeroina.
Numerot vaihtelevat vรคlillรค 0 - 127. Esimerkiksi merkki "a" vastaa ASCII-koodia 97.
Char julistus
Ilmoittaa a char muuttuja sisรครคn C++, kรคytรคmme avainsanaa char. Tรคmรคn jรคlkeen tulee olla muuttujan nimi. Muuttuja voidaan alustaa ilmoitushetkellรค. Muuttujan arvo tulee sulkea lainausmerkkien sisรคllรค.
Syntaksi
Tรคssรค on syntaksi char-ilmoitukselle C++:
char variable-name;
Muuttujan nimi on muuttujalle annettava nimi.
Jos arvo mรครคritetรครคn ilmoitushetkellรค, voit kรคyttรครค tรคtรค syntaksia:
char variable-name = 'value';
- Muuttujan nimi on char-muuttujan nimi.
- Arvo on char-muuttujalle annettava arvo.
Esimerkki 1:
#include <iostream> using namespace std; int main() { char grade = 'B'; cout << "I scored a: "<<grade; return 0; }
lรคhtรถ:
Tรคssรค on kuvakaappaus koodista:
Code Selitys:
- Sisรคllytรค iostream-otsikkotiedosto koodiimme kรคyttรครคksesi sen toimintoja.
- std-nimiavaruuden sisรคllyttรคminen koodiimme, jotta sen luokkia voidaan kรคyttรครค kutsumatta sitรค.
- Main()-funktion kutsuminen. Ohjelmalogiikka tulisi lisรคtรค tรคmรคn funktion runkoon.
- Ilmoita merkkimuuttuja nimeltรค arvosana. Muuttujalle on myรถs annettu arvo B. Huomaa, ettรค muuttujan arvo on lainausmerkkien sisรคllรค.
- Tulosta muuttujan arvosanan arvo muun tekstin rinnalle konsoliin.
- Ohjelman on palautettava arvo, kun se on suoritettu onnistuneesti.
- Main()-funktion rungon loppu.
ASCII-arvon tulostaminen
Kuten edellรค mainittiin, jokainen merkki tulkitaan ASCII-merkiksi. Voit saada minkรค tahansa merkin ASCII-arvon. Sinun tarvitsee vain siirtรครค merkki int()-funktiolle. Tรคtรค prosessia kutsutaan tyyppivaluksi. Osoitetaan tรคmรค:
Esimerkki 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; }
lรคhtรถ:
Tรคssรค on kuvakaappaus koodista:
Code Selitys:
- Sisรคllytรค iostream-otsikkotiedosto koodiimme sen toimintojen kรคyttรคmiseksi.
- std-nimiavaruuden sisรคllyttรคminen koodiimme, jotta sen luokkia voidaan kรคyttรครค kutsumatta sitรค.
- Main()-funktion kutsuminen. Ohjelmalogiikka tulisi lisรคtรค tรคmรคn funktion runkoon.
- Ilmoita char-muuttuja nimeltรค ch.
- Tulosta tekstiรค konsoliin. Teksti pyytรครค kรคyttรคjรครค syรถttรคmรครคn arvon muuttujalle ch.
- Lue kรคyttรคjรคn syรถte nรคppรคimistรถltรค ja tallenna se muuttujaan ch.
- Tulosta tekstiรค konsoliin. Teksti sisรคltรครค muuttujalle ch syรถttรคmรคsi merkin, tรคmรคn merkin ASCII-arvon ja muuta tekstiรค.
- Ohjelman on palautettava arvo, kun se on suoritettu onnistuneesti.
- Main()-funktion rungon loppu.
Merkin arvon tulostaminen
Kun ASCII-arvo on annettu, C++ kรครคntรคjรค voi palauttaa vastaavan merkin. Ilmoitat char-muuttujan ja annat sille kokonaislukuarvon. Se muunnetaan vastaavaksi merkkiarvoksi.
Esimerkki 3:
#include <iostream> using namespace std; int main() { char x = 64, y = 66, z = 71; cout << x; cout << y; cout << z; return 0; }
lรคhtรถ:
Tรคssรค on kuvakaappaus koodista:
Code Selitys:
- Sisรคltรครค iostream-otsikkotiedoston koodiin. Sitten kรคytรคmme sen toimintoja ilman virheitรค.
- Sisรคllytรค std-nimiavaruus koodiin. Kรคytรคmme sen luokkia kutsumatta sitรค.
- Main()-funktion kutsuminen. Ohjelmalogiikan pitรคisi mennรค tรคmรคn funktion runkoon.
- Ilmoita kolme char-muuttujaa x, y ja z. Nรคille kolmelle on annettu kokonaislukuarvot 65, 66 ja 67. Nรคitรค kรคsitellรครคn ASCII-arvoina merkeille.
- Tulosta muuttujan x arvo konsolista. Koska x on ilmoitettu merkiksi, palautetaan merkki, jonka ASCII-arvo on 65, eli A.
- Tulosta muuttujan y arvo konsolista. Koska y ilmoitettiin merkiksi, palautetaan merkki, jonka ASCII-arvo on 66, eli B.
- Tulosta muuttujan z arvo konsolista. Koska z on ilmoitettu merkiksi, palautetaan merkki, jonka ASCII-arvo on 67, eli C.
- Ohjelman on palautettava arvo, kun se on suoritettu onnistuneesti.
- Main()-funktion rungon loppu.
Merkkien syรถttรคminen
Voimme kรคyttรครค std::cin-funktiota lukemaan kรคyttรคjรคn nรคppรคimistรถllรค syรถttรคmรคn merkin. std::cin-funktion avulla voit syรถttรครค useita merkkejรค. Merkkimuuttuja voi kuitenkin sisรคltรครค vain yhden merkin. Tรคmรค tarkoittaa, ettรค vain ensimmรคinen syรถtetty merkki otetaan kรคyttรถรถn.tracja tallennetaan merkkimuuttujaan. Loput jรครคvรคt std::cin:n kรคyttรคmรครคn puskuriin. Esim.tract sitรค, tee seuraavat kutsut std::cin-muuttujaan.
Esimerkki 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; }
lรคhtรถ:
Tรคssรค on kuvakaappaus koodista:
Code Selitys:
- Sisรคllytรค iostream-otsikkotiedosto koodiimme kรคyttรครคksesi sen toimintoja.
- Sisรคllytรค std-nimiavaruus koodiimme kรคyttรครคksesi sen luokkia kutsumatta sitรค.
- Main()-funktion kutsuminen. Ohjelmalogiikka tulisi lisรคtรค tรคmรคn funktion runkoon.
- Tulosta tekstiรค konsoliin.
- Ilmoita merkkimuuttuja nimeltรค ch.
- Lue kรคyttรคjรคn syรถte nรคppรคimistรถltรค. Tulo tallennetaan muuttujaan ch. Koska kรคyttรคjรค kirjoittaa merkkijonon, kuten abc, vain ensimmรคinen merkki, a, tallennetaan muuttujaan ch.
- Ensimmรคisen syรถtetyn merkin, sen ASCII-koodin ja muun tekstin tulostaminen konsoliin. ASCII-koodi mรครคritetรครคn vรคlittรคmรคllรค merkkimuuttuja int()-funktiolle.
- Lue seuraava kรคyttรคjรคn kirjoittama merkki. Kรคyttรคjรคn ei tarvitse syรถttรครค uutta merkkiรค. Sen sijaan se lukee toisen syรถtetyn merkin, eli b.
- Tulostetaan toinen syรถtetty merkki, sen ASCII-koodi ja muu teksti konsoliin. ASCII-koodi mรครคritetรครคn vรคlittรคmรคllรค merkkimuuttuja int()-funktiolle.
- Ohjelman on palautettava arvo, kun se on suoritettu onnistuneesti.
- Main()-funktion rungon loppu.
Muunnetaan merkki merkkijonoksi
On olemassa useita tapoja, joilla voimme muuntaa merkkejรค jouset.
Keskustellaan niistรค:
#1: Kรคytรค merkkijonoluokan antamaa konstruktoria
Tรคmรค voidaan tehdรค kรคyttรคmรคllรค seuraavaa syntaksia:
string st(int n,char x);
Parametri n ilmaisee generoitavan merkkijonon koon.
Parametri x on merkki, joka muunnetaan merkkijonoksi.
Funktio palauttaa merkkijonon.
Esimerkki 5:
#include<iostream> #include <string> using namespace std; int main() { string st(1, 'C'); cout << "The resulting string is : " << st; return 0; }
lรคhtรถ:
Tรคssรค on kuvakaappaus koodista:
Code Selitys:
- Sisรคllytรค iostream-otsikkotiedosto koodiimme kรคyttรครคksesi sen toimintoja.
- Sisรคllytรค merkkijonootsikkotiedosto koodiimme kรคyttรครคksesi sen toimintoja.
- Sisรคllytรค std-nimiavaruus koodiimme kรคyttรครคksesi sen luokkia kutsumatta sitรค.
- Main()-funktion kutsuminen. Ohjelmalogiikka tulisi lisรคtรค tรคmรคn funktion runkoon.
- Muunna merkki "C" 1-pituiseksi merkkijonoksi ja liitรค tuloksena oleva merkkijono muuttujaan st.
- Tulosta merkkijonon st arvo konsoliin muun tekstin viereen.
- Ohjelman on palautettava arvo, kun se on suoritettu onnistuneesti.
- Main()-funktion rungon loppu.
#2) Kรคyttรคmรคllรค std::stringiรค Operatorit = ja +=
Operaattorit = ja += ovat jo ylikuormitettuja merkeillรค. Nรคitรค kahta voidaan kรคyttรครค muuntamaan tietty merkki merkkijonoksi.
Esimerkki 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; }
lรคhtรถ:
Tรคssรค on kuvakaappaus koodista:
Code Selitys:
- Sisรคllytรค iostream-otsikkotiedosto koodiimme kรคyttรครคksesi sen toimintoja.
- Sisรคllytรค merkkijonootsikkotiedosto koodiimme kรคyttรครคksesi sen toimintoja.
- Sisรคllytรค std-nimiavaruus koodiimme kรคyttรครคksesi sen luokkia kutsumatta sitรค.
- Main()-funktion kutsuminen. Ohjelmalogiikka tulisi lisรคtรค tรคmรคn funktion runkoon.
- Luo merkkijonomuuttuja nimeltรค st.
- Luo merkki nimeltรค b, jonka arvo on B.
- Anna A:n arvo merkkijonolle nimeltรค st.
- Kรคytรค +=-operaattoria muuntaaksesi merkit merkkijonoksi.
- Tulosta merkkijonon st arvo konsoliin muun tekstin viereen.
- Ohjelman on palautettava arvo, kun se on suoritettu onnistuneesti.
- Main()-funktion rungon loppu.
#3: Std::string-menetelmien kรคyttรคminen
Std::string-luokassa on monia ylikuormitettuja toimintoja, jotka voivat auttaa sinua muuttamaan merkit merkkijonoiksi.
Niihin kuuluvat:
- tyรถnnรค takaisin Tรคmรค toiminto mรครคrittรครค tietyn merkin merkkijonon loppuun. Se on ylikuormitettu merkeille.Se kรคyttรครค seuraavan syntaksin:
void push_back(char ch)Parametri ch on merkki, joka muutetaan merkkijonoksi.
- liittรครค Se mรครคrittรครค useita kopioita tietystรค merkistรค merkkijonoon. Funktio kรคyttรครค seuraavan syntaksin:
string& append(size_t n,char ch)
Parametri n ilmaisee aikoja, jolloin merkki lisรคtรครคn.
Parametri ch on merkki, joka liitetรครคn merkkijonoon.
- luovuttaa Tรคmรค toiminto korvaa merkkijonon nykyisen sisรคllรถn n kopiolla mรครคritetystรค merkistรค. Se kรคyttรครค seuraavan syntaksin:
string& assign(size_t n,char ch);
Parametri n ilmaisee merkin kopioiden kokonaismรครคrรคn.
Parametri ch on merkkijonoon kopioitava merkki.
- lisรคtรค Lisรคystoiminto lisรครค n kopiota merkistรค merkkijonon alkukohtaan argumenttien mukaisesti. Se vaatii seuraavan syntaksin:
string& insert(size_t p,size_t n,char ch);
Parametri p ilmaisee sijainnin alusta, johon merkit lisรคtรครคn.
Parametri n ilmaisee merkin kopioiden kokonaismรครคrรคn.
Parametri ch on merkkijonoon lisรคttรคvรค merkki.
Esimerkki 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; }
lรคhtรถ:
Tรคssรค on kuvakaappaus koodista:
- Sisรคllytรค iostream-otsikkotiedosto koodiimme kรคyttรครคksesi sen toimintoja.
- Sisรคllytรค merkkijonootsikkotiedosto koodiimme kรคyttรครคksesi sen toimintoja.
- Sisรคllytรค std-nimiavaruus koodiimme kรคyttรครคksesi sen luokkia kutsumatta sitรค.
- Main()-funktion kutsuminen. Ohjelmalogiikka tulisi lisรคtรค tรคmรคn funktion runkoon.
- Luo merkkijonomuuttuja nimeltรค st.
- Mรครคritรค merkki A merkkijonon loppuun.
- Tulosta merkkijonon st arvo konsoliin muun tekstin viereen. Endl (loppurivi) siirtรครค kohdistimen seuraavalle riville.
- Aseta merkkijonon st arvo tyhjรคksi.
- Mรครคritรค yksi merkki C merkkijonoon nimeltรค st.
- Tulosta merkkijonon st arvo konsoliin muun tekstin viereen. Endl (loppurivi) siirtรครค kohdistimen seuraavalle riville.
- Aseta merkkijonon st arvo tyhjรคksi.
- Korvaa merkkijonon st sisรคltรถ yhdellรค merkillรค D.
- Tulosta merkkijonon st arvo konsoliin muun tekstin viereen. Endl (loppurivi) siirtรครค kohdistimen seuraavalle riville.
- Lisรครค yksi merkki E merkkijonoon, jonka nimi on st sen ensimmรคisestรค indeksistรค.
- Tulosta merkkijonon st arvo konsoliin muun tekstin viereen. Endl (loppurivi) siirtรครค kohdistimen seuraavalle riville.
- Ohjelman on palautettava arvo, kun se on suoritettu onnistuneesti.
- Main()-funktion rungon loppu.
#4: std::stringstreamin kรคyttรคminen
Jos haluat kรคyttรครค tรคtรค luokkaa merkin muuntamiseen merkkijonoksi, lisรครค merkki streamiin.
Ne kirjoitetaan merkkijonoon.
Esimerkki 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; }
lรคhtรถ:
Tรคssรค on kuvakaappaus koodista:
Code Selitys:
- Sisรคllytรค iostream-otsikkotiedosto koodiimme kรคyttรครคksesi sen toimintoja.
- Sisรคllytรค merkkijonootsikkotiedosto koodiimme kรคyttรครคksesi sen toimintoja.
- Sisรคllytรค stream-otsikkotiedosto koodiimme kรคyttรครคksesi sen toimintoja.
- Sisรคllytรค std-nimiavaruus koodiimme kรคyttรครคksesi sen luokkia kutsumatta sitรค.
- Main()-funktion kutsuminen. Ohjelmalogiikka tulisi lisรคtรค tรคmรคn funktion runkoon.
- Luo merkkijonomuuttuja nimeltรค st.
- Luo stream-muuttuja nimeltรค myst.
- Lisรครค merkki A virtaobjektiin nimeltรค myst.
- Muunna stream-objekti merkkijonoksi.
- Tulosta merkkijonon st arvo konsoliin muun tekstin viereen. Endl (loppurivi) siirtรครค kohdistimen seuraavalle riville.
- Ohjelman on palautettava arvo, kun se on suoritettu onnistuneesti.
- Main()-funktion rungon loppu.









