C++ Char Data Type med eksempler

โšก Smart opsummering

Char-datatypen i C++ gemmer et enkelt tegn, sรฅsom et bogstav eller et ciffer, ved hjรฆlp af dets ASCII-vรฆrdi. Her lรฆrer du at deklarere tegn, udskrive ASCII-vรฆrdier, indtaste tegn og konvertere et tegn til en streng.

  • ๐Ÿ”ค Hvad er det: Et char gemmer et enkelt tegn ved hjรฆlp af dets ASCII-vรฆrdi.
  • ๐Ÿ”ข ASCII: Hvert tegn er knyttet til en numerisk ASCII-kode, f.eks. er 'A' 65.
  • ๐Ÿ”ง Erklรฆring: Deklarer et tegn med enkelte anfรธrselstegn, f.eks. char grade = 'A';.
  • ๐Ÿ” Konvertering: Cast et char til int for dets ASCII-vรฆrdi, og tilbage igen.
  • ๐Ÿค– AI-hjรฆlp: AI-vรฆrktรธjer som GitHub Copilot hรฅndterer tegn- og ASCII-kode รธjeblikkeligt.

C++ Char Data Type

Hvad er Char?

Char er en C++ datatype designet til opbevaring af breve. Char er en forkortelse for et alfanumerisk tegn. Det er en integral datatype, hvilket betyder, at vรฆrdien er gemt som et heltal. Et tegn tager en hukommelsesstรธrrelse pรฅ 1 byte. Den gemmer ogsรฅ et enkelt tegn.

Hvad er ASCII?

Tegnvรฆrdien fortolkes som et ASCII-tegn. Dette svarer til, hvordan boolske vรฆrdier fortolkes som sande eller falske. ASCII er et akronym for American Standard (amerikansk standard). Code til informationsudveksling. Den definerer en specifik mรฅde at reprรฆsentere engelske tegn som tal pรฅ.

Tallene gรฅr mellem 0 og 127. For eksempel svarer tegnet 'a' til ASCII-kode 97.

Char-deklaration

At erklรฆre en char variabel i C++, bruger vi sรธgeordet char. Dette skal efterfรธlges af navnet pรฅ variablen. Variablen kan initialiseres pรฅ tidspunktet for deklarationen. Vรฆrdien af โ€‹โ€‹variablen skal vรฆre omgivet af enkelte anfรธrselstegn.

Syntaks

Her er syntaksen for char-deklaration i C++:

char variable-name;

Variabelnavnet er det navn, der skal tildeles variablen.

Hvis en vรฆrdi skal tildeles pรฅ tidspunktet for erklรฆringen, kan du bruge denne syntaks:

char variable-name = 'value';	
  • Variabelnavnet er navnet pรฅ char-variablen.
  • Vรฆrdien er den vรฆrdi, der skal tildeles char-variablen.

Eksempel 1:

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

Output:

Char-deklaration

Her er et skรฆrmbillede af koden:

Char-deklaration

Code Forklaring:

  1. Inkluderer iostream-headerfilen i vores kode for at bruge dens funktioner.
  2. Inkluderer std-navneomrรฅdet i vores kode for at bruge dets klasser uden at kalde det.
  3. Kalder hoved()-funktionen. Programlogikken skal tilfรธjes i denne funktions brรธdtekst.
  4. Erklรฆr en tegnvariabel ved navn grade. Variablen er ogsรฅ blevet tildelt en vรฆrdi pรฅ B. Bemรฆrk, at vรฆrdien af โ€‹โ€‹variablen er omgivet af enkelte anfรธrselstegn.
  5. Udskriv vรฆrdien af โ€‹โ€‹den variable karakter sammen med anden tekst pรฅ konsollen.
  6. Programmet skal returnere vรฆrdi efter vellykket afslutning.
  7. Slutningen af โ€‹โ€‹hoveddelen af โ€‹โ€‹funktionen main().

Udskrivning af ASCII-vรฆrdi

Som nรฆvnt ovenfor fortolkes hvert tegn som ASCII-tegn. Det er muligt for dig at fรฅ ASCII-vรฆrdien for et hvilket som helst tegn. Du sender simpelthen tegnet til int()-funktionen. Denne proces kaldes typestรธbning. Lad os demonstrere dette:

Eksempel 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:

Udskrivning af ASCII-vรฆrdi

Her er et skรฆrmbillede af koden:

Udskrivning af ASCII-vรฆrdi

Code Forklaring:

  1. Inkluderer iostream-header-filen i vores kode for at bruge dens funktioner.
  2. Inkluderer std-navneomrรฅdet i vores kode for at bruge dets klasser uden at kalde det.
  3. Kalder hoved()-funktionen. Programlogikken skal tilfรธjes i denne funktions brรธdtekst.
  4. Erklรฆr en char-variabel ved navn ch.
  5. Udskriv noget tekst pรฅ konsollen. Teksten beder brugeren om at indtaste en vรฆrdi for variablen kap.
  6. Lรฆs brugerinputtet fra tastaturet og gem det i variablen kap.
  7. Udskriv noget tekst pรฅ konsollen. Teksten vil inkludere det tegn, du indtastede for variabel ch, ASCII-vรฆrdien for dette tegn og anden tekst.
  8. Programmet skal returnere vรฆrdi efter vellykket afslutning.
  9. Slutningen af โ€‹โ€‹hoveddelen af โ€‹โ€‹funktionen main().

Udskrivning Char Vรฆrdi

Givet en ASCII-vรฆrdi er C++ compiler kan returnere det tilsvarende tegn. Du erklรฆrer en char-variabel og tildeler den en heltalsvรฆrdi. Det vil blive konverteret til den tilsvarende tegnvรฆrdi.

Eksempel 3:

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

Output:

Udskrivning Char Vรฆrdi

Her er et skรฆrmbillede af koden:

Udskrivning Char Vรฆrdi

Code Forklaring:

  1. Inkluderer iostream header-filen i koden. Vi vil derefter bruge dens funktioner uden at fรฅ fejl.
  2. Inkluder std-navneomrรฅdet i koden. Vi vil bruge dets klasser uden at kalde det.
  3. Kalder hoved()-funktionen. Programlogikken skal gรฅ ind i kroppen af โ€‹โ€‹denne funktion.
  4. Deklarer tre char-variabler x, y og z. De tre er blevet tildelt heltalsvรฆrdier pรฅ 65, 66 og 67. Disse vil blive behandlet som ASCII-vรฆrdier for tegn.
  5. Udskriv vรฆrdien af โ€‹โ€‹variabel x pรฅ konsollen. Da x blev erklรฆret som en char, vil char med ASCII-vรฆrdi pรฅ 65 blive returneret, det vil sige A.
  6. Udskriv vรฆrdien af โ€‹โ€‹variabel y pรฅ konsollen. Da y blev erklรฆret som et char, vil char med ASCII-vรฆrdi pรฅ 66 blive returneret, det vil sige B.
  7. Udskriv vรฆrdien af โ€‹โ€‹variabel z pรฅ konsollen. Da z blev erklรฆret som et char, vil char med ASCII-vรฆrdi pรฅ 67 blive returneret, det vil sige C.
  8. Programmet skal returnere vรฆrdi efter vellykket afslutning.
  9. Slutningen af โ€‹โ€‹hoveddelen af โ€‹โ€‹hoved()-funktionen.

Indtastning af tegn

Vi kan bruge funktionen std::cin til at lรฆse et tegn, som brugeren har indtastet via tastaturet. Funktionen std::cin giver dig mulighed for at indtaste mange tegn. Variablen character kan dog kun indeholde รฉt tegn. Det betyder, at kun det fรธrste indtastede tegn vil blive vist.tracog gemmes i tegnvariablen. Resten forbliver i bufferen, der bruges af std::cin. For eksempeltract det, foretag efterfรธlgende kald til std::cin.

Eksempel 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:

Indtastning af tegn

Her er et skรฆrmbillede af koden:

Indtastning af tegn

Code Forklaring:

  1. Inkluderer iostream-headerfilen i vores kode for at bruge dens funktioner.
  2. Inkluder std-navneomrรฅdet i vores kode for at bruge dets klasser uden at kalde det.
  3. Kalder hoved()-funktionen. Programlogikken skal tilfรธjes i denne funktions brรธdtekst.
  4. Udskriv noget tekst pรฅ konsollen.
  5. Erklรฆr en tegnvariabel ved navn ch.
  6. Lรฆs brugerinput fra tastaturet. Indtastningen vil blive gemt i variablen kap. Da en bruger vil skrive en tegnsekvens som abc, vil kun det fรธrste tegn, a, blive gemt i variabel ch.
  7. Udskrivning af det fรธrste indtastede tegn, dets ASCII-kode og anden tekst pรฅ konsollen. ASCII-koden bestemmes ved at overfรธre tegnvariablen til int()-funktionen.
  8. Lรฆs det nรฆste tegn, som blev indtastet af brugeren. Brugeren skal ikke indtaste et nyt tegn. Den vil i stedet lรฆse det andet tegn, der blev indtastet, det vil sige b.
  9. Udskrivning af det andet indtastede tegn, dets ASCII-kode og anden tekst pรฅ konsollen. ASCII-koden bestemmes ved at overfรธre tegnvariablen til int()-funktionen.
  10. Programmet skal returnere vรฆrdi efter vellykket afslutning.
  11. Slutningen af โ€‹โ€‹hoveddelen af โ€‹โ€‹funktionen main().

Konvertering af tegn til streng

Der findes en rรฆkke mรฅder, vi kan bruge til at konvertere tegn til strygere.

Lad os diskutere dem:

#1: Brug af konstruktรธr givet af en strengklasse

Dette kan gรธres ved hjรฆlp af fรธlgende syntaks:

string st(int n,char x);

Parameteren n angiver stรธrrelsen af โ€‹โ€‹den streng, der skal genereres.

Parameteren x er tegnet, der skal konverteres til en streng.

Funktionen returnerer en streng.

Eksempel 5:

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

Output:

Konvertering af tegn til streng

Her er et skรฆrmbillede af koden:

Konvertering af tegn til streng

Code Forklaring:

  1. Inkluderer iostream-headerfilen i vores kode for at bruge dens funktioner.
  2. Inkluder strenghovedfilen i vores kode for at bruge dens funktioner.
  3. Inkluder std-navneomrรฅdet i vores kode for at bruge dets klasser uden at kalde det.
  4. Kalder hoved()-funktionen. Programlogikken skal tilfรธjes i denne funktions brรธdtekst.
  5. Konverter tegnet "C" til en 1-lรฆngde streng og tildel den resulterende streng til variablen st.
  6. Udskriv vรฆrdien af โ€‹โ€‹strengen pรฅ konsollen sammen med anden tekst.
  7. Programmet skal returnere vรฆrdi efter vellykket afslutning.
  8. Slutningen af โ€‹โ€‹hoveddelen af โ€‹โ€‹funktionen main().

#2) Brug af std::strengen Operators = og +=

= og += operatorerne er allerede overbelastet med tegn. De to kan bruges til at konvertere et bestemt tegn til en streng.

Eksempel 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:

Konvertering af tegn til streng

Her er et skรฆrmbillede af koden:

Konvertering af tegn til streng

Code Forklaring:

  1. Inkluder iostream-headerfilen i vores kode for at bruge dens funktioner.
  2. Inkluder strenghovedfilen i vores kode for at bruge dens funktioner.
  3. Inkluder std-navneomrรฅdet i vores kode for at bruge dets klasser uden at kalde det.
  4. Kalder hoved()-funktionen. Programlogikken skal tilfรธjes i denne funktions brรธdtekst.
  5. Opret en strengvariabel ved navn st.
  6. Opret et tegn ved navn b med vรฆrdien B.
  7. Tildel en vรฆrdi af A til strengen ved navn st.
  8. Brug operatoren += til at konvertere tegn til en streng.
  9. Udskriv vรฆrdien af โ€‹โ€‹strengen pรฅ konsollen sammen med anden tekst.
  10. Programmet skal returnere vรฆrdi efter vellykket afslutning.
  11. Slutningen af โ€‹โ€‹hoveddelen af โ€‹โ€‹funktionen main().

#3: Brug af std::string-metoder

Std::string-klassen kommer med mange overbelastede funktioner, der kan hjรฆlpe dig med at konvertere tegn til strenge.

De omfatter:

  • skub tilbage Denne funktion tildeler et bestemt tegn til en strengs ende. Det er overbelastet for tegn. Det krรฆver fรธlgende syntaks:
    void push_back(char ch)
    

    Parameteren ch er det tegn, der skal รฆndres til en streng.

  • append Den tildeler mange kopier af et bestemt tegn til en streng. Funktionen tager fรธlgende syntaks:
    string& append(size_t n,char ch)
    

    Parameteren n angiver de tidspunkter, hvor tegnet vil blive tilfรธjet.

    Parameteren ch er tegnet, der skal tilfรธjes til strengen.

  • tildele Denne funktion erstatter det aktuelle indhold af strengen med n kopier af det angivne tegn. Det tager fรธlgende syntaks:
    string& assign(size_t n,char ch);

    Parameteren n angiver det samlede antal kopier for tegnet.

    Parameteren ch er tegnet, der skal kopieres ind i strengen.

  • INSERT Indsรฆt-funktionen indsรฆtter n kopier af et tegn ved startpositionen af โ€‹โ€‹strengen, som angivet i argumenterne. Det tager fรธlgende syntaks:
    string& insert(size_t p,size_t n,char ch);

    Parameteren p angiver den position fra starten, hvor tegn vil blive indsat.

    Parameteren n angiver det samlede antal kopier for tegnet.

    Parameteren ch er det tegn, der skal indsรฆttes i strengen.

Eksempel 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:

Konvertering af tegn til streng

Her er et skรฆrmbillede af koden:

Konvertering af tegn til streng

  1. Inkluder iostream-headerfilen i vores kode for at bruge dens funktioner.
  2. Inkluder strenghovedfilen i vores kode for at bruge dens funktioner.
  3. Inkluder std-navneomrรฅdet i vores kode for at bruge dets klasser uden at kalde det.
  4. Kalder hoved()-funktionen. Programlogikken skal tilfรธjes i denne funktions brรธdtekst.
  5. Opret en strengvariabel ved navn st.
  6. Tildel tegnet A til slutningen af โ€‹โ€‹strengen.
  7. Udskriv vรฆrdien af โ€‹โ€‹strengen pรฅ konsollen sammen med anden tekst. Endl (slutlinjen) flytter markรธren til nรฆste linje.
  8. Indstil vรฆrdien af โ€‹โ€‹strengens st til tom.
  9. Tildel enkelt tegn C til strengen med navnet st.
  10. Udskriv vรฆrdien af โ€‹โ€‹strengen pรฅ konsollen sammen med anden tekst. Endl (slutlinjen) flytter markรธren til nรฆste linje.
  11. Indstil vรฆrdien af โ€‹โ€‹strengens st til tom.
  12. Erstat indholdet for strengst med et enkelt tegn D.
  13. Udskriv vรฆrdien af โ€‹โ€‹strengen pรฅ konsollen sammen med anden tekst. Endl (slutlinjen) flytter markรธren til nรฆste linje.
  14. Indsรฆt et enkelt tegn E i strengen med navnet st fra dets fรธrste indeks.
  15. Udskriv vรฆrdien af โ€‹โ€‹strengen pรฅ konsollen sammen med anden tekst. Endl (slutlinjen) flytter markรธren til nรฆste linje.
  16. Programmet skal returnere vรฆrdi efter vellykket afslutning.
  17. Slutningen af โ€‹โ€‹hoveddelen af โ€‹โ€‹funktionen main().

#4: Brug af std::stringstream

For at bruge denne klasse til at konvertere tegn til en streng, skal du indsรฆtte tegnet i stream.

De vil blive skrevet til strengen.

Eksempel 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:

Konvertering af tegn til streng

Her er et skรฆrmbillede af koden:

Konvertering af tegn til streng

Code Forklaring:

  1. Inkluder iostream-headerfilen i vores kode for at bruge dens funktioner.
  2. Inkluder strenghovedfilen i vores kode for at bruge dens funktioner.
  3. Inkluder sstream-headerfilen i vores kode for at bruge dens funktioner.
  4. Inkluder std-navneomrรฅdet i vores kode for at bruge dets klasser uden at kalde det.
  5. Kalder hoved()-funktionen. Programlogikken skal tilfรธjes i denne funktions brรธdtekst.
  6. Opret en strengvariabel ved navn st.
  7. Opret en strรธmvariabel ved navn myst.
  8. Indsรฆt karakteren A i strรธmobjektet myst.
  9. Konverter stream-objektet til en streng.
  10. Udskriv vรฆrdien af โ€‹โ€‹strengen pรฅ konsollen sammen med anden tekst. Endl (slutlinjen) flytter markรธren til nรฆste linje.
  11. Programmet skal returnere vรฆrdi efter vellykket afslutning.
  12. Slutningen af โ€‹โ€‹hoveddelen af โ€‹โ€‹funktionen main().

Ofte Stillede Spรธrgsmรฅl

Et tegn er en datatype, der gemmer et enkelt tegn, sรฅsom et bogstav, et ciffer eller et symbol. Det optager รฉn byte og indeholder tegnets ASCII-vรฆrdi internt.

ASCII er en standard, der knytter tegn til tal fra 0 til 127. I C++, gemmer hvert tegn sin ASCII-kode, sรฅ 'A' er 65 og 'a' er 97.

Deklarer et tegn ved hjรฆlp af nรธgleordet char og et enkelt tegn i enkelte anfรธrselstegn, f.eks. char grade = 'A';. Enkelte anfรธrselstegn er pรฅkrรฆvet, ikke dobbelte anfรธrselstegn.

Omformuler tegnet til et heltal, sรฅsom int(ch) eller (int)ch, og udskriv det. Dette viser den numeriske ASCII-kode i stedet for selve tegnet.

Brug cin med ex'entractionsoperatoren til at lรฆse et enkelt tegn, f.eks. cin efterfulgt af ch. Den gemmer det nรฆste ikke-mellemrumstegn, som brugeren skriver.

Du kan tildele et tegn til en std::string, bruge strengkonstruktรธren eller tilfรธje den, f.eks. std::string s(1, ch); for at lave en streng pรฅ รฉt tegn.

AI-assistenter som GitHub Copilot genererer tegn-til-ASCII-konverteringer, skriver tegninputlรธkker og foreslรฅr rettelser til almindelige tegn- og strengfejl, mens du skriver.

Ja. AI-drevne vรฆrktรธjer genererer ASCII- og case-konverteringskode, hรฅndterer tegn-til-streng-konverteringer og markerer fejl som f.eks. brug af dobbelte anfรธrselstegn for et enkelt tegn.

Opsummer dette indlรฆg med: