C++ Char-gegevenstype met voorbeelden
Wat is Char?
Char is een C++ gegevenstype dat is ontworpen voor de opslag van letters. Char is een afkorting voor een alfanumeriek teken. Het is een integraal gegevenstype, wat betekent dat de waarde wordt opgeslagen als een geheel getal. Een char neemt een geheugengrootte van 1 byte in beslag. Het slaat ook een enkel teken op.
Wat is ASCII?
De char-waarde wordt geïnterpreteerd als een ASCII-teken. Dit is vergelijkbaar met hoe Booleaanse waarden worden geïnterpreteerd als waar of onwaar. ASCII is een acroniem voor American Standard Code for Information Interchange. Het definieert een specifieke manier om Engelse tekens als getallen weer te geven.
De getallen variëren van 0 tot en met 127. Het teken 'a' is bijvoorbeeld equivalent aan ASCII-code 97.
Char-verklaring
Aangifte doen van een char variabele in C++, gebruiken we het trefwoord char. Dit moet worden gevolgd door de naam van de variabele. De variabele kan worden geïnitialiseerd op het moment van de declaratie. De waarde van de variabele moet tussen enkele aanhalingstekens worden geplaatst.
Syntaxis
Hier is de syntaxis voor char-declaratie in C++:
char variable-name;
De variabelenaam is de naam die aan de variabele moet worden toegewezen.
Als er op het moment van declaratie een waarde moet worden toegekend, kunt u deze syntaxis gebruiken:
char variable-name = 'value';
- De variabelenaam is de naam van de char-variabele.
- De waarde is de waarde die aan de char-variabele moet worden toegewezen.
Voorbeeld 1:
#include <iostream> using namespace std; int main() { char grade = 'B'; cout << "I scored a: "<<grade; return 0; }
Output:
Hier is een screenshot van de code:
Code Verklaring:
- Het iostream-headerbestand opnemen in onze code om de functies ervan te gebruiken.
- Inclusief de std-naamruimte in onze code om de klassen ervan te gebruiken zonder deze aan te roepen.
- De functie main() aanroepen. De programmalogica moet worden toegevoegd aan de hoofdtekst van deze functie.
- Declareer een tekenvariabele met de naam grade. Aan de variabele is ook de waarde B toegewezen. Merk op dat de waarde van de variabele tussen enkele aanhalingstekens staat.
- Druk de waarde van het variabele cijfer samen met andere tekst op de console af.
- Het programma moet waarde retourneren na succesvolle voltooiing.
- Einde van de hoofdtekst van de functie main().
ASCII-waarde afdrukken
Zoals hierboven vermeld, wordt elk teken geïnterpreteerd als ASCII-teken. Het is voor u mogelijk om de ASCII-waarde van elk teken te achterhalen. U geeft het teken eenvoudigweg door aan de functie int(). Dit proces wordt typecasting genoemd. Laten we dit demonstreren:
Voorbeeld 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; }
Output:
Hier is een screenshot van de code:
Code Verklaring:
- Het iostream-headerbestand in onze code opnemen om de functies ervan te gebruiken.
- Het opnemen van de std-naamruimte in onze code om de klassen ervan te gebruiken zonder deze aan te roepen.
- De functie main() aanroepen. De programmalogica moet worden toegevoegd aan de hoofdtekst van deze functie.
- Declareer een char-variabele met de naam ch.
- Druk wat tekst af op de console. De tekst vraagt de gebruiker om een waarde in te voeren voor de variabele ch.
- Lees de gebruikersinvoer van het toetsenbord en sla deze op in de variabele ch.
- Druk wat tekst af op de console. De tekst bevat het teken dat u hebt ingevoerd voor de variabele ch, de ASCII-waarde van dit teken en andere tekst.
- Het programma moet waarde retourneren na succesvolle voltooiing.
- Einde van de hoofdtekst van de functie main().
Char-waarde afdrukken
Gegeven een ASCII-waarde, wordt de C++ compiler kan het overeenkomstige teken retourneren. U declareert een char-variabele en wijst er een geheel getal aan toe. Het wordt geconverteerd naar de overeenkomstige tekenwaarde.
Voorbeeld 3:
#include <iostream> using namespace std; int main() { char x = 64, y = 66, z = 71; cout << x; cout << y; cout << z; return 0; }
Output:
Hier is een screenshot van de code:
Code Verklaring:
- Inclusief het iostream-headerbestand in de code. We zullen dan de functies ervan gebruiken zonder fouten te krijgen.
- Neem de std-naamruimte op in de code. We zullen de klassen gebruiken zonder deze aan te roepen.
- De functie main() aanroepen. De programmalogica moet in de hoofdtekst van deze functie worden opgenomen.
- Declareer drie char-variabelen x, y en z. Aan de drie zijn gehele getallen 65, 66 en 67 toegewezen. Deze worden behandeld als ASCII-waarden voor tekens.
- Druk de waarde van variabele x af op de console. Omdat x als char is gedeclareerd, wordt de char met een ASCII-waarde van 65 geretourneerd, dat wil zeggen A.
- Druk de waarde van variabele y af op de console. Omdat y als char is gedeclareerd, wordt de char met een ASCII-waarde van 66 geretourneerd, dat wil zeggen B.
- Druk de waarde van variabele z af op de console. Omdat z als een char is gedeclareerd, wordt de char met een ASCII-waarde van 67 geretourneerd, dat wil zeggen C.
- Het programma moet waarde retourneren na succesvolle voltooiing.
- Het einde van de hoofdtekst van de functie main().
Tekens invoeren
We kunnen de std::cin functie gebruiken om een char te lezen die door de gebruiker via het toetsenbord is ingevoerd. Met std::cin kunt u veel tekens invoeren. De character variabele kan echter maar één teken bevatten. Dit betekent dat alleen het eerste ingevoerde teken wordt geëxtraheerd en opgeslagen in de character variabele. De rest blijft in de buffer die door std::cin wordt gebruikt. Om het te extraheren, voert u opeenvolgende aanroepen uit naar std::cin.
Voorbeeld 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; }
Output:
Hier is een screenshot van de code:
Code Verklaring:
- Het iostream-headerbestand opnemen in onze code om de functies ervan te gebruiken.
- Neem de std-naamruimte op in onze code om de klassen ervan te gebruiken zonder deze aan te roepen.
- De functie main() aanroepen. De programmalogica moet worden toegevoegd aan de hoofdtekst van deze functie.
- Druk wat tekst af op de console.
- Declareer een karaktervariabele met de naam ch.
- Lees gebruikersinvoer vanaf het toetsenbord. De invoer wordt opgeslagen in de variabele ch. Omdat een gebruiker een tekenreeks zoals abc typt, wordt alleen het eerste teken, a, opgeslagen in variabele ch.
- Afdrukken van het eerste ingevoerde teken, de ASCII-code en andere tekst op de console. De ASCII-code wordt bepaald door de karaktervariabele door te geven aan de functie int().
- Lees het volgende teken dat door de gebruiker is ingevoerd. De gebruiker hoeft geen nieuw teken in te voeren. In plaats daarvan wordt het tweede teken gelezen dat is ingevoerd, dat wil zeggen b.
- Het tweede ingevoerde teken, de ASCII-code en andere tekst afdrukken op de console. De ASCII-code wordt bepaald door de karaktervariabele door te geven aan de functie int().
- Het programma moet waarde retourneren na succesvolle voltooiing.
- Einde van de hoofdtekst van de functie main().
Teken naar tekenreeks converteren
Er bestaan een aantal manieren waarop we karakters kunnen converteren strings.
Laten we ze bespreken:
#1: Constructor gebruiken gegeven door een String-klasse
Dit kan worden gedaan met behulp van de volgende syntaxis:
string st(int n,char x);
De parameter n geeft de grootte aan van de string die moet worden gegenereerd.
De parameter x is het teken dat naar een string moet worden geconverteerd.
De functie retourneert een tekenreeks.
Voorbeeld 5:
#include<iostream> #include <string> using namespace std; int main() { string st(1, 'C'); cout << "The resulting string is : " << st; return 0; }
Output:
Hier is een screenshot van de code:
Code Verklaring:
- Het iostream-headerbestand opnemen in onze code om de functies ervan te gebruiken.
- Neem het string-headerbestand op in onze code om de functies ervan te gebruiken.
- Neem de std-naamruimte op in onze code om de klassen ervan te gebruiken zonder deze aan te roepen.
- De functie main() aanroepen. De programmalogica moet worden toegevoegd aan de hoofdtekst van deze functie.
- Converteer het teken “C” naar een string van 1 lengte en wijs de resulterende string toe aan de variabele st.
- Druk de waarde van de string st af op de console naast andere tekst.
- Het programma moet waarde retourneren na succesvolle voltooiing.
- Einde van de hoofdtekst van de functie main().
#2) Met behulp van de std::string Operators = en +=
De operatoren = en += zijn al overladen met tekens. De twee kunnen worden gebruikt om een bepaald teken om te zetten in een string.
Voorbeeld 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; }
Output:
Hier is een screenshot van de code:
Code Verklaring:
- Neem het iostream-headerbestand op in onze code om de functies ervan te gebruiken.
- Neem het string-headerbestand op in onze code om de functies ervan te gebruiken.
- Neem de std-naamruimte op in onze code om de klassen ervan te gebruiken zonder deze aan te roepen.
- De functie main() aanroepen. De programmalogica moet worden toegevoegd aan de hoofdtekst van deze functie.
- Maak een stringvariabele met de naam st.
- Maak een personage met de naam b met de waarde B.
- Wijs een waarde A toe aan de tekenreeks met de naam st.
- Gebruik de operator += om tekens naar een tekenreeks te converteren.
- Druk de waarde van de string st af op de console naast andere tekst.
- Het programma moet waarde retourneren na succesvolle voltooiing.
- Einde van de hoofdtekst van de functie main().
#3: Std::string-methoden gebruiken
De klasse std::string wordt geleverd met veel overbelaste functies die u kunnen helpen bij het omzetten van tekens in tekenreeksen.
Zij omvatten:
- terugduwen Deze functie wijst een bepaald teken toe aan het einde van een string. Het is overladen voor tekens. Het gebruikt de volgende syntaxis:
void push_back(char ch)
De parameter ch is het teken dat in een string moet worden gewijzigd.
- toevoegen Hiermee worden meerdere kopieën van een bepaald teken aan een tekenreeks toegewezen. De functie gebruikt de volgende syntaxis:
string& append(size_t n,char ch)
De parameter n geeft de keren aan dat het teken wordt toegevoegd.
De parameter ch is het teken dat aan de string moet worden toegevoegd.
- toewijzen Deze functie vervangt de huidige inhoud van de tekenreeks door n kopieën van het opgegeven teken. De volgende syntaxis wordt gebruikt:
string& assign(size_t n,char ch);
De parameter n geeft het totale aantal kopieën voor het teken aan.
De parameter ch is het teken dat naar de string moet worden gekopieerd.
- invoegen De functie insert voegt n kopieën van een teken in op de beginpositie van de string, zoals gespecificeerd in de argumenten. Het gebruikt de volgende syntaxis:
string& insert(size_t p,size_t n,char ch);
De parameter p geeft de positie vanaf het begin aan waar tekens worden ingevoegd.
De parameter n geeft het totale aantal kopieën voor het teken aan.
De parameter ch is het teken dat in de string moet worden ingevoegd.
Voorbeeld 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; }
Output:
Hier is een screenshot van de code:
- Neem het iostream-headerbestand op in onze code om de functies ervan te gebruiken.
- Neem het string-headerbestand op in onze code om de functies ervan te gebruiken.
- Neem de std-naamruimte op in onze code om de klassen ervan te gebruiken zonder deze aan te roepen.
- De functie main() aanroepen. De programmalogica moet worden toegevoegd aan de hoofdtekst van deze functie.
- Maak een stringvariabele met de naam st.
- Wijs het teken A toe aan het einde van de tekenreeks.
- Druk de waarde van de string st af op de console naast andere tekst. De endl (eindregel) verplaatst de cursor naar de volgende regel.
- Stel de waarde van de string st in op leeg.
- Wijs één teken C toe aan de tekenreeks met de naam st.
- Druk de waarde van de string st af op de console naast andere tekst. De endl (eindregel) verplaatst de cursor naar de volgende regel.
- Stel de waarde van de string st in op leeg.
- Vervang de inhoud van string st door één teken D.
- Druk de waarde van de string st af op de console naast andere tekst. De endl (eindregel) verplaatst de cursor naar de volgende regel.
- Voeg een enkel teken E toe aan de string met de naam st uit de eerste index.
- Druk de waarde van de string st af op de console naast andere tekst. De endl (eindregel) verplaatst de cursor naar de volgende regel.
- Het programma moet waarde retourneren na succesvolle voltooiing.
- Einde van de hoofdtekst van de functie main().
#4: std::stringstream gebruiken
Om deze klasse te gebruiken om tekens naar een string te converteren, voegt u het teken in de stream in.
Ze worden naar de string geschreven.
Voorbeeld 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; }
Output:
Hier is een screenshot van de code:
Code Verklaring:
- Neem het iostream-headerbestand op in onze code om de functies ervan te gebruiken.
- Neem het string-headerbestand op in onze code om de functies ervan te gebruiken.
- Neem het sstream-headerbestand op in onze code om de functies ervan te gebruiken.
- Neem de std-naamruimte op in onze code om de klassen ervan te gebruiken zonder deze aan te roepen.
- De functie main() aanroepen. De programmalogica moet worden toegevoegd aan de hoofdtekst van deze functie.
- Maak een stringvariabele met de naam st.
- Maak een streamvariabele met de naam myst.
- Plaats het teken A in het streamobject met de naam myst.
- Converteer het streamobject naar een tekenreeks.
- Druk de waarde van de string st af op de console naast andere tekst. De endl (eindregel) verplaatst de cursor naar de volgende regel.
- Het programma moet waarde retourneren na succesvolle voltooiing.
- Einde van de hoofdtekst van de functie main().
Samenvatting
- Een char is een C++ gegevenstype dat wordt gebruikt voor de opslag van brieven.
- C++ Char is een integraal gegevenstype, wat betekent dat de waarde wordt opgeslagen als een geheel getal.
- Het neemt een geheugengrootte van 1 byte in beslag.
- C++ Char slaat slechts één teken op.
- Char-waarden worden geïnterpreteerd als ASCII-tekens.
- ASCII is een acroniem voor American Standard Code for Information Interchange.
- Het beschrijft een specifieke manier om Engelse tekens in de vorm van getallen weer te geven.
- Om de ASCII-waarde van een teken te zien, geven we deze door aan de functie int().
- Om de overeenkomstige tekenwaarde van de ASCII-waarde te zien, definiëren we de ASCII als een teken.