ASCII-Wert von Char in C++ abrufen
-
Verwenden Sie
std::copy
undstd::ostream_iterator
, um den ASCII-Wert vonchar
zu erhalten -
Verwenden Sie die Formatbezeichner
printf
, um den ASCII-Wert vonchar
abzurufen -
Verwenden Sie
int()
, um den ASCII-Wert vonchar
abzurufen
![ASCII-Wert von Char in C++ abrufen](/img/Cpp/feature-image---get-ascii-value-of-char-in-cpp.webp)
In diesem Artikel werden verschiedene Methoden zum Abrufen des ASCII-Werts von char
in C++ erläutert.
Verwenden Sie std::copy
und std::ostream_iterator
, um den ASCII-Wert von char
zu erhalten
Die ASCII-Zeichencodierung ist in Computern fast allgegenwärtig, obwohl seitdem neuere Standardschemata wie UTF-8 und andere entstanden sind. Ursprünglich codierte ASCII englische Buchstaben, Dezimalstellen, Interpunktionssymbole und einige zusätzliche Steuercodes. Alle diese Symbole werden mit einem ganzzahligen Wert aus dem Bereich [0 - 127]
dargestellt. Da die Typen char
als Ganzzahlen implementiert sind, können wir ihre Werte behandeln und sie mit dem Algorithmus ostream_iterator<int>
und std::copy
an den Stream cout
ausgeben. Beachten Sie, dass nachfolgende Alphabetbuchstaben benachbarte Zahlenwerte haben.
#include <iostream>
#include <iterator>
#include <vector>
using std::copy;
using std::cout;
using std::endl;
using std::vector;
int main() {
vector<char> chars{'g', 'h', 'T', 'U', 'q', '%', '+', '!', '1', '2', '3'};
cout << "chars: ";
std::copy(chars.begin(), chars.end(), std::ostream_iterator<int>(cout, "; "));
return EXIT_SUCCESS;
}
Ausgabe:
chars: 103; 104; 84; 85; 113; 37; 43; 33; 49; 50; 51;
Verwenden Sie die Formatbezeichner printf
, um den ASCII-Wert von char
abzurufen
Die Funktion printf
ist eine weitere Alternative zur Ausgabe der Werte char
mit entsprechenden ASCII-Codes. Beachten Sie, dass printf
beide Argumente als char
-Typen verwendet und nur die Formatbezeichner %c
/%d
unterscheidet. Obwohl die letzteren Spezifizierer normalerweise als Formatierer char
bzw. int
dokumentiert sind, sind sie mit den Typen des jeweils anderen kompatibel.
#include <iostream>
#include <vector>
using std::cout;
using std::endl;
using std::vector;
int main() {
vector<char> chars{'g', 'h', 'T', 'U', 'q', '%', '+', '!', '1', '2', '3'};
cout << endl;
for (const auto &number : chars) {
printf("The ASCII value of '%c' is: %d\n", number, number);
}
return EXIT_SUCCESS;
}
Ausgabe:
The ASCII value of 'g' is: 103
The ASCII value of 'h' is: 104
The ASCII value of 'T' is: 84
The ASCII value of 'U' is: 85
The ASCII value of 'q' is: 113
The ASCII value of '%' is: 37
The ASCII value of '+' is: 43
The ASCII value of '!' is: 33
The ASCII value of '1' is: 49
The ASCII value of '2' is: 50
The ASCII value of '3' is: 51
Verwenden Sie int()
, um den ASCII-Wert von char
abzurufen
Schließlich kann man char
-Werte mit der Notation int(c)
konvertieren und die Werte wie jede andere Variable direkt in den Stream cout
ausgeben. Beachten Sie, dass dieses Beispiel mehr C++-Stil hat als die Version printf
mit ihren Formatspezifizierern. Im Gegensatz dazu können die ASCII-Zeichenwerte aus den int
-Werten mit der Notation char(i)
gedruckt werden.
#include <iostream>
#include <vector>
using std::cout;
using std::endl;
using std::vector;
int main() {
vector<char> chars{'g', 'h', 'T', 'U', 'q', '%', '+', '!', '1', '2', '3'};
cout << endl;
for (auto &number : chars) {
cout << "The ASCII value of '" << number << "' is: " << int(number) << endl;
}
return EXIT_SUCCESS;
}
Ausgabe:
The ASCII value of 'g' is: 103
The ASCII value of 'h' is: 104
The ASCII value of 'T' is: 84
The ASCII value of 'U' is: 85
The ASCII value of 'q' is: 113
The ASCII value of '%' is: 37
The ASCII value of '+' is: 43
The ASCII value of '!' is: 33
The ASCII value of '1' is: 49
The ASCII value of '2' is: 50
The ASCII value of '3' is: 51
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn Facebook