ASCII-Wert von Char in C++ abrufen
-
Verwenden Sie
std::copyundstd::ostream_iterator, um den ASCII-Wert voncharzu erhalten -
Verwenden Sie die Formatbezeichner
printf, um den ASCII-Wert voncharabzurufen -
Verwenden Sie
int(), um den ASCII-Wert voncharabzurufen
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