ASCII-Wert von Char in C++ abrufen

Jinku Hu 12 Oktober 2023
  1. Verwenden Sie std::copy und std::ostream_iterator, um den ASCII-Wert von char zu erhalten
  2. Verwenden Sie die Formatbezeichner printf, um den ASCII-Wert von char abzurufen
  3. Verwenden Sie int(), um den ASCII-Wert von char abzurufen
ASCII-Wert von Char in C++ abrufen

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
Autor: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

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

Verwandter Artikel - C++ Char