Wie man ASCII in C++ in Zeichen konvertiert

Jinku Hu 12 Oktober 2023
  1. Verwenden Sie den Zuweisungsoperator, um ASCII-Wert in C++ in Zeichen zu konvertieren
  2. Verwenden Sie die Funktion sprintf(), um den ASCII-Wert in C++ in Zeichen umzuwandeln
  3. Verwenden Sie char(), um ASCII-Wert in Char zu konvertieren
Wie man ASCII in C++ in Zeichen konvertiert

In diesem Artikel werden mehrere Methoden zur Konvertierung von ASCII-Werten in Zeichen in C++ demonstriert.

Verwenden Sie den Zuweisungsoperator, um ASCII-Wert in C++ in Zeichen zu konvertieren

Die ASCII-Kodierung unterstützt 128 eindeutige Zeichen, von denen jedes dem entsprechenden Zeichenwert zugeordnet wird. Da die Programmiersprache C Zeichen-Typen als Zahlen unter der Haube implementiert hat, können wir Zeichenvariablen entsprechende int-Werte zuweisen. Beispielsweise können wir Werte vom int-Vektor auf den char-Vektor schieben und sie dann mit Hilfe des std::copy-Algorithmus, der ASCII-Zeichen wie erwartet an der Konsole ausgibt, ausdrucken.

Beachten Sie, daß die Zuweisung an den Typ char nur funktioniert, wenn der int-Wert einem ASCII-Code entspricht, d.h. im Bereich 0-127 liegt.

#include <charconv>
#include <iostream>
#include <iterator>
#include <vector>

using std::copy;
using std::cout;
using std::endl;
using std::vector;

int main() {
  vector<int> ascii_vals{97, 98, 99, 100, 101, 102, 103};
  vector<char> chars{};

  chars.reserve(ascii_vals.size());
  for (auto &n : ascii_vals) {
    chars.push_back(n);
  }
  copy(chars.begin(), chars.end(), std::ostream_iterator<char>(cout, "; "));

  return EXIT_SUCCESS;
}

Ausgabe:

a; b; c; d; e; f; g;

Verwenden Sie die Funktion sprintf(), um den ASCII-Wert in C++ in Zeichen umzuwandeln

Die Funktion sprintf ist eine weitere Methode zur Umwandlung von ASCII-Werten in Zeichen. In dieser Lösung deklarieren wir ein char-Array, um die konvertierten Werte bei jeder Iteration zu speichern, bis die printf-Ausgabe auf der Konsole erfolgt. sprintf nimmt Zeichenarray als erstes Argument. Als naechstes sollten Sie einen %c Formatbezeichner angeben, der einen Zeichenwert bezeichnet, und dieser Parameter gibt den Typ an, in den die Eingabe umgewandelt wird. Schließlich sollten Sie als dritten Parameter eine Quellvariable, d.h. ASCII-Werte, angeben.

#include <array>
#include <charconv>
#include <iostream>
#include <iterator>
#include <vector>

using std::array;
using std::copy;
using std::cout;
using std::endl;
using std::to_chars;
using std::vector;

int main() {
  vector<int> ascii_vals{97, 98, 99, 100, 101, 102, 103};

  array<char, 5> char_arr{};
  for (auto &n : ascii_vals) {
    sprintf(char_arr.data(), "%c", n);
    printf("%s; ", char_arr.data());
  }
  cout << endl;

  return EXIT_SUCCESS;
}

Ausgabe:

a; b; c; d; e; f; g;

Verwenden Sie char(), um ASCII-Wert in Char zu konvertieren

Alternativ kann char() cast verwendet werden, um einzelne ASCII-Werte in den Typ char zu konvertieren. Das folgende Beispiel zeigt, wie man Zeichen direkt aus dem int-Vektor, der ASCII-Werte enthält, auf die Konsole ausgeben kann.

#include <charconv>
#include <iostream>
#include <iterator>
#include <vector>

using std::copy;
using std::cout;
using std::endl;
using std::vector;

int main() {
  vector<int> ascii_vals{97, 98, 99, 100, 101, 102, 103};

  for (auto &n : ascii_vals) {
    cout << char(n) << endl;
  }

  return EXIT_SUCCESS;
}

Ausgabe:

a
b
c
d
e
f
g
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