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.

  • ๐Ÿ”ค Mitรค se on: Char tallentaa yhden merkin ASCII-arvonsa avulla.
  • ๐Ÿ”ข ASCII: Jokainen merkki vastaa numeerista ASCII-koodia, kuten 'A' on 65.
  • ๐Ÿ”ง ilmoitus: Mรครคrittele merkki (char) kรคyttรคmรคllรค lainausmerkkejรค, kuten char grade = 'A';.
  • ๐Ÿ” Conversion: Muunna char kokonaismuotoon sen ASCII-arvon saamiseksi ja takaisin.
  • ๐Ÿค– Tekoรคlyn apu: Tekoรคlytyรถkalut, kuten GitHub Copilot, kรคsittelevรคt merkki- ja ASCII-koodia vรคlittรถmรคsti.

C++ Char Tietotyyppi

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รถ:

Char julistus

Tรคssรค on kuvakaappaus koodista:

Char julistus

Code Selitys:

  1. Sisรคllytรค iostream-otsikkotiedosto koodiimme kรคyttรครคksesi sen toimintoja.
  2. std-nimiavaruuden sisรคllyttรคminen koodiimme, jotta sen luokkia voidaan kรคyttรครค kutsumatta sitรค.
  3. Main()-funktion kutsuminen. Ohjelmalogiikka tulisi lisรคtรค tรคmรคn funktion runkoon.
  4. Ilmoita merkkimuuttuja nimeltรค arvosana. Muuttujalle on myรถs annettu arvo B. Huomaa, ettรค muuttujan arvo on lainausmerkkien sisรคllรค.
  5. Tulosta muuttujan arvosanan arvo muun tekstin rinnalle konsoliin.
  6. Ohjelman on palautettava arvo, kun se on suoritettu onnistuneesti.
  7. 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รถ:

ASCII-arvon tulostaminen

Tรคssรค on kuvakaappaus koodista:

ASCII-arvon tulostaminen

Code Selitys:

  1. Sisรคllytรค iostream-otsikkotiedosto koodiimme sen toimintojen kรคyttรคmiseksi.
  2. std-nimiavaruuden sisรคllyttรคminen koodiimme, jotta sen luokkia voidaan kรคyttรครค kutsumatta sitรค.
  3. Main()-funktion kutsuminen. Ohjelmalogiikka tulisi lisรคtรค tรคmรคn funktion runkoon.
  4. Ilmoita char-muuttuja nimeltรค ch.
  5. Tulosta tekstiรค konsoliin. Teksti pyytรครค kรคyttรคjรครค syรถttรคmรครคn arvon muuttujalle ch.
  6. Lue kรคyttรคjรคn syรถte nรคppรคimistรถltรค ja tallenna se muuttujaan ch.
  7. Tulosta tekstiรค konsoliin. Teksti sisรคltรครค muuttujalle ch syรถttรคmรคsi merkin, tรคmรคn merkin ASCII-arvon ja muuta tekstiรค.
  8. Ohjelman on palautettava arvo, kun se on suoritettu onnistuneesti.
  9. 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รถ:

Merkin arvon tulostaminen

Tรคssรค on kuvakaappaus koodista:

Merkin arvon tulostaminen

Code Selitys:

  1. Sisรคltรครค iostream-otsikkotiedoston koodiin. Sitten kรคytรคmme sen toimintoja ilman virheitรค.
  2. Sisรคllytรค std-nimiavaruus koodiin. Kรคytรคmme sen luokkia kutsumatta sitรค.
  3. Main()-funktion kutsuminen. Ohjelmalogiikan pitรคisi mennรค tรคmรคn funktion runkoon.
  4. 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.
  5. Tulosta muuttujan x arvo konsolista. Koska x on ilmoitettu merkiksi, palautetaan merkki, jonka ASCII-arvo on 65, eli A.
  6. Tulosta muuttujan y arvo konsolista. Koska y ilmoitettiin merkiksi, palautetaan merkki, jonka ASCII-arvo on 66, eli B.
  7. Tulosta muuttujan z arvo konsolista. Koska z on ilmoitettu merkiksi, palautetaan merkki, jonka ASCII-arvo on 67, eli C.
  8. Ohjelman on palautettava arvo, kun se on suoritettu onnistuneesti.
  9. 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รถ:

Merkkien syรถttรคminen

Tรคssรค on kuvakaappaus koodista:

Merkkien syรถttรคminen

Code Selitys:

  1. Sisรคllytรค iostream-otsikkotiedosto koodiimme kรคyttรครคksesi sen toimintoja.
  2. Sisรคllytรค std-nimiavaruus koodiimme kรคyttรครคksesi sen luokkia kutsumatta sitรค.
  3. Main()-funktion kutsuminen. Ohjelmalogiikka tulisi lisรคtรค tรคmรคn funktion runkoon.
  4. Tulosta tekstiรค konsoliin.
  5. Ilmoita merkkimuuttuja nimeltรค ch.
  6. 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.
  7. 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.
  8. 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.
  9. Tulostetaan toinen syรถtetty merkki, sen ASCII-koodi ja muu teksti konsoliin. ASCII-koodi mรครคritetรครคn vรคlittรคmรคllรค merkkimuuttuja int()-funktiolle.
  10. Ohjelman on palautettava arvo, kun se on suoritettu onnistuneesti.
  11. 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รถ:

Muunnetaan merkki merkkijonoksi

Tรคssรค on kuvakaappaus koodista:

Muunnetaan merkki merkkijonoksi

Code Selitys:

  1. Sisรคllytรค iostream-otsikkotiedosto koodiimme kรคyttรครคksesi sen toimintoja.
  2. Sisรคllytรค merkkijonootsikkotiedosto koodiimme kรคyttรครคksesi sen toimintoja.
  3. Sisรคllytรค std-nimiavaruus koodiimme kรคyttรครคksesi sen luokkia kutsumatta sitรค.
  4. Main()-funktion kutsuminen. Ohjelmalogiikka tulisi lisรคtรค tรคmรคn funktion runkoon.
  5. Muunna merkki "C" 1-pituiseksi merkkijonoksi ja liitรค tuloksena oleva merkkijono muuttujaan st.
  6. Tulosta merkkijonon st arvo konsoliin muun tekstin viereen.
  7. Ohjelman on palautettava arvo, kun se on suoritettu onnistuneesti.
  8. 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รถ:

Muunnetaan merkki merkkijonoksi

Tรคssรค on kuvakaappaus koodista:

Muunnetaan merkki merkkijonoksi

Code Selitys:

  1. Sisรคllytรค iostream-otsikkotiedosto koodiimme kรคyttรครคksesi sen toimintoja.
  2. Sisรคllytรค merkkijonootsikkotiedosto koodiimme kรคyttรครคksesi sen toimintoja.
  3. Sisรคllytรค std-nimiavaruus koodiimme kรคyttรครคksesi sen luokkia kutsumatta sitรค.
  4. Main()-funktion kutsuminen. Ohjelmalogiikka tulisi lisรคtรค tรคmรคn funktion runkoon.
  5. Luo merkkijonomuuttuja nimeltรค st.
  6. Luo merkki nimeltรค b, jonka arvo on B.
  7. Anna A:n arvo merkkijonolle nimeltรค st.
  8. Kรคytรค +=-operaattoria muuntaaksesi merkit merkkijonoksi.
  9. Tulosta merkkijonon st arvo konsoliin muun tekstin viereen.
  10. Ohjelman on palautettava arvo, kun se on suoritettu onnistuneesti.
  11. 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รถ:

Muunnetaan merkki merkkijonoksi

Tรคssรค on kuvakaappaus koodista:

Muunnetaan merkki merkkijonoksi

  1. Sisรคllytรค iostream-otsikkotiedosto koodiimme kรคyttรครคksesi sen toimintoja.
  2. Sisรคllytรค merkkijonootsikkotiedosto koodiimme kรคyttรครคksesi sen toimintoja.
  3. Sisรคllytรค std-nimiavaruus koodiimme kรคyttรครคksesi sen luokkia kutsumatta sitรค.
  4. Main()-funktion kutsuminen. Ohjelmalogiikka tulisi lisรคtรค tรคmรคn funktion runkoon.
  5. Luo merkkijonomuuttuja nimeltรค st.
  6. Mรครคritรค merkki A merkkijonon loppuun.
  7. Tulosta merkkijonon st arvo konsoliin muun tekstin viereen. Endl (loppurivi) siirtรครค kohdistimen seuraavalle riville.
  8. Aseta merkkijonon st arvo tyhjรคksi.
  9. Mรครคritรค yksi merkki C merkkijonoon nimeltรค st.
  10. Tulosta merkkijonon st arvo konsoliin muun tekstin viereen. Endl (loppurivi) siirtรครค kohdistimen seuraavalle riville.
  11. Aseta merkkijonon st arvo tyhjรคksi.
  12. Korvaa merkkijonon st sisรคltรถ yhdellรค merkillรค D.
  13. Tulosta merkkijonon st arvo konsoliin muun tekstin viereen. Endl (loppurivi) siirtรครค kohdistimen seuraavalle riville.
  14. Lisรครค yksi merkki E merkkijonoon, jonka nimi on st sen ensimmรคisestรค indeksistรค.
  15. Tulosta merkkijonon st arvo konsoliin muun tekstin viereen. Endl (loppurivi) siirtรครค kohdistimen seuraavalle riville.
  16. Ohjelman on palautettava arvo, kun se on suoritettu onnistuneesti.
  17. 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รถ:

Muunnetaan merkki merkkijonoksi

Tรคssรค on kuvakaappaus koodista:

Muunnetaan merkki merkkijonoksi

Code Selitys:

  1. Sisรคllytรค iostream-otsikkotiedosto koodiimme kรคyttรครคksesi sen toimintoja.
  2. Sisรคllytรค merkkijonootsikkotiedosto koodiimme kรคyttรครคksesi sen toimintoja.
  3. Sisรคllytรค stream-otsikkotiedosto koodiimme kรคyttรครคksesi sen toimintoja.
  4. Sisรคllytรค std-nimiavaruus koodiimme kรคyttรครคksesi sen luokkia kutsumatta sitรค.
  5. Main()-funktion kutsuminen. Ohjelmalogiikka tulisi lisรคtรค tรคmรคn funktion runkoon.
  6. Luo merkkijonomuuttuja nimeltรค st.
  7. Luo stream-muuttuja nimeltรค myst.
  8. Lisรครค merkki A virtaobjektiin nimeltรค myst.
  9. Muunna stream-objekti merkkijonoksi.
  10. Tulosta merkkijonon st arvo konsoliin muun tekstin viereen. Endl (loppurivi) siirtรครค kohdistimen seuraavalle riville.
  11. Ohjelman on palautettava arvo, kun se on suoritettu onnistuneesti.
  12. Main()-funktion rungon loppu.

UKK

Char on tietotyyppi, joka tallentaa yhden merkin, kuten kirjaimen, numeron tai symbolin. Se vie yhden tavun ja sisรคltรครค merkin ASCII-arvon sisรคisesti.

ASCII on standardi, joka muuntaa merkit numeroiksi 0โ€“127. C++, jokainen merkki tallentaa ASCII-koodinsa, joten 'A' on 65 ja 'a' on 97.

Mรครคritรค merkki kรคyttรคmรคllรค char-avainsanaa ja yhtรค merkkiรค lainausmerkeissรค, kuten char grade = 'A';. Lainausmerkit ovat pakollisia, ei lainausmerkkejรค.

Muunna merkki kokonaisluvuksi, kuten int(ch) tai (int)ch, ja tulosta se. Tรคmรค nรคyttรครค numeerisen ASCII-koodin itse merkin sijaan.

Kรคytรค cin-merkkiรค ex-pรครคtteen kanssatraction-operaattoria yksittรคisen merkin, kuten cin ja sen jรคlkeen ch, lukemiseen. Se tallentaa seuraavan kรคyttรคjรคn kirjoittaman ei-tyhjรคmerkin.

Voit liittรครค merkin std::string-merkkijonoon, kรคyttรครค merkkijonon konstruktoria tai liittรครค sen loppuun, kuten std::string s(1, ch);, jolloin luot yksimerkkisen merkkijonon.

Tekoรคlyavustajat, kuten GitHub Copilot, luovat merkki-ASCII-muunnoksia, kirjoittavat merkkien syรถttรถsilmukoita ja ehdottavat korjauksia yleisiin merkki- ja merkkijonovirheisiin kirjoittaessasi.

Kyllรค. Tekoรคlyllรค toimivat tyรถkalut luovat ASCII- ja kirjainkokomuunnoskoodia, kรคsittelevรคt merkkien muunnokset merkkijonoiksi ja merkitsevรคt virheitรค, kuten lainausmerkkien kรคyttรถรค yksittรคisen merkin tilalla.

Tiivistรค tรคmรค viesti seuraavasti: