Datentyp char in C++

In C++ wird der Datentyp char verwendet, um einzelne Zeichen zu speichern. Ein char-Wert wird immer in einfachen Anführungszeichen geschrieben, z. B. 'A'. Intern wird ein char als Zahl gemäß dem ASCII-Code gespeichert.

Deklaration und Initialisierung

Ein char kann folgendermaßen deklariert und initialisiert werden:

#include <iostream>
using namespace std;
 
int main() {
    char buchstabe = 'A';
    cout << "Der Buchstabe ist: " << buchstabe << endl;
    return 0;
}

Wichtige Eigenschaften von char

Grundlegendes

Variablen vom Datentyp char können ein Zeichen als Wert annehmen. Als Zeichen oder Character bezeichnet man:

ASCII steht für „American Standard Code for Information Interchange“. Im ASCII sind die Zeichen 0 bis 127 laut Tabelle genormt. Dieser Code wird von fast allen Rechnern verwendet.

Die Zeichen 0 bis 31 sind Steuerzeichen (z.B. \n hat den Wert 10) und werden im allgemeinen nicht gedruckt und deshalb in der Liste nicht dargestellt.

char-Variablen werden, wie auch alle anderen Variablen - im Vereinbarungsteil deklariert.

Beispiel:

char zeichen;

Konstanten vom Typ char werden im Programm zwischen Hochkommata gestellt (z.B. 'A', 'x').

Beispiel:

char zeichen;
zeichen='A';

Da char-Werte durch ihre Nummern im verwendeten Zeichensatz dargestellt werden, können sie wie Zahlen mit Vergleichsoperatoren (z.B. <, >, ==,…) miteinander verglichen werden. Man kann einer Varialbe vom Typ char auch einen ganzzahligen Wert zuweisen. Ausgegeben wird dann jedoch das entsprechende Zeichen der ASCII-Tabelle.

Beispiel:

char zeichen;
zeichen=65; //Ausgabe: 'A'

Um beispielsweise Zeichen einzulesen oder am Bildschirm auszugeben gibt es verschiedene Bibliotheksfunktionen, welche in conio.h enthalten sind. Einige wichtige daraus sind:

Die Ascii-Tabelle: ASCII-Tabelle

Beispiele

1. Eingabe und Ausgabe eines Zeichens

#include <iostream>
using namespace std;
 
int main() {
    char zeichen;
    cout << "Geben Sie ein Zeichen ein: ";
    cin >> zeichen;
    cout << "Sie haben das Zeichen '" << zeichen << "' eingegeben." << endl;
    return 0;
}

2. ASCII-Wert eines Zeichens ausgeben

#include <iostream>
using namespace std;
 
int main() {
    char buchstabe = 'C';
    cout << "Der ASCII-Wert von " << buchstabe << " ist " << int(buchstabe) << endl;
    return 0;
}

3. Zeichen in Groß- oder Kleinbuchstaben umwandeln

#include <iostream>
using namespace std;
 
int main() {
    char klein = 'a';
    char gross = klein - 32; // Konvertierung von Klein- zu Großbuchstabe
    cout << "Großbuchstabe: " << gross << endl;
    return 0;
}

Aufgaben

Beginner

1. Zeichen eingeben und ausgeben

Schreibe ein Programm, das ein Zeichen vom Benutzer einliest und es ausgibt.

2. ASCII-Wert berechnen

Schreibe ein Programm, das ein Zeichen einliest und den ASCII-Wert ausgibt.

3. Zeichen vergleichen

Schreibe ein Programm, das zwei Zeichen einliest und ausgibt, welches den kleineren ASCII-Wert hat.

Intermediate

4. Vokal oder Konsonant

Schreibe ein Programm, das jeweils prüft, ob ein eingegebenes Zeichen ein Vokal oder ein Konsonant ist. Das Programm endet, sobald die ESC-Taste gedrückt wird (ASCII-Code: 27)

5. Buchstabenart bestimmen

Schreibe ein Programm, das ein Zeichen einliest und jeweils bestimmt, ob es ein Großbuchstabe, Kleinbuchstabe, eine Ziffer oder ein Sonderzeichen ist.

6. Klein- zu Großbuchstaben

Schreibe ein Programm, das beim Eingeben eines Textes Kleinbuchstaben in einen Großbuchstaben umwandelt. Das Programm endet, sobald die ESC-Taste gedrückt wird (ASCII-Code: 27)

7. Vokale in Sonderzeichen umwandeln

Schreibe ein Programm, das eine Zeichenkette einliest und alle Vokale durch bestimmte Sonderzeichen ersetzt.

Beispiel: Eingabe Hallo, Ausgabe H@ll0

8. Zeichen in Morsecode umwandeln

Schreibe ein Programm, das ein Zeichen (A–Z oder 0–9) einliest und den zugehörigen Morsecode ausgibt.

9. Spiegelung im Alphabet

Schreibe ein Programm, das einen Buchstaben einliest und den gespiegelten Buchstaben im Alphabet ausgibt.

Beispiel:

10. ASCII-Tabelle

Schreibe ein Programm, dass alle Zeichen der ASCII-Tabelle von einer eingegebenen Untergrenze bis zu einer gewünschten Obergrenze mit der entsprechenden Nr. ausgibt.

11. ASCII-Code

Schreibe ein Programm, dass bei einem Tastendruck mit der Ausgabe des jeweiligen Zeichens und seines ASCII-Codes reagiert. Das Programm soll solange laufen, bis die Taste ESC (ASCII-Code 27) gedrückt wird.

Hinweise: Lies den Tastendruck mit t=getch() ein, du erhältst den ASCII-Code mittels (int)t, wenn t eine char-Variable ist. Du kannst mit der Bedingung t==27 überprüfen, ob die Taste ESC gedrückt wurde.

Advanced

12. Zeichen einlesen

Schreibe ein Programm, welches ein Zeichen einliest. Erlaubt sind nur Groß-, Kleinbuchstaben und Ziffern. Andere Zeichen werden ignoriert. Anschließend gibt das Programm aus, ob es sich um einen Groß-, Kleinbuchstaben oder eine Ziffer gehandelt hat.
Das Programm soll so lange laufen, bis die Taste Esc (ASCII-Code 27) gedrückt wird.

13. Dual -> Dezimal

Schreibe ein Programm, welches eine duale Ziffernfolge vom Bildschirm zeichenweise einliest und in eine Dezimalzahl umrechnet.

14. Hexadezimal -> Dezimal

Schreibe ein Programm, welches eine hexadezimale Ziffernfolge vom Bildschirm zeichenweise einliest und in eine Dezimalzahl umrechnet.

15. Cäsar-Verschlüsselung

Eines der ältesten Codierungsverfahren ist die Verschlüsselungstechnik von Julius Cäsar. Dabei wird jeder Buchstabe des Alphabets wird durch seinen k-ten Vorgänger ersetzt. Das Alphabet wird dabei zyklisch verwendet.

Für k=4 sieht dies folgendermaßen aus:

EingabeABCDEFPQRSTUVWXYZ
verschlüsselter TextEFGHIJTUVWXYZABCD

Schreibe einen Programmcode, der einen vom Benutzer eingegebenen Text auf diese Weise verschlüsselt. Der Schlüsselwert k soll vom Benutzer selbst eingegeben werden.

Beispiel eines Benutzerdialogs: (die darin enthaltenen Funktionen soll auch dein Programm beinhalten!):

Das folgende Programm verschlüsselt den von Ihnen eingegeben Text lt. Caesar. Geben Sie den Text in Großbuchstaben ein! Beenden Sie Ihre Eingabe mit „$“! Wählen Sie einen Schlüsselwert k: 4 Geben Sie nun den Text ein: (Der Benutzer gibt MORGENGRAUEN ein) QSVKIRKVEYIR

Möchten Sie noch einen weiteren Text verschlüsseln (0|1)? 0

TIPP: Bevor du mit der Programmierarbeit beginnst, solltest du dir überlegen, wie du die „Verschiebung“ der Buchstaben mit einfachen Operationen realisieren könntest. Orientiere dich dabei an der ASCII-Tabelle! Beachte dass Buchstaben intern als Zahlen gespeichert werden!