Wie man ASCII in C++ in Zeichen konvertiert
- Verwenden Sie den Zuweisungsoperator, um ASCII-Wert in C++ in Zeichen zu konvertieren
-
Verwenden Sie die Funktion
sprintf()
, um den ASCII-Wert in C++ in Zeichen umzuwandeln -
Verwenden Sie
char()
, um ASCII-Wert in Char zu konvertieren
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
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