Comment convertir ASCII en caractères en C++
- Utiliser l’opérateur d’assignation pour convertir une valeur ASCII en caractère en C++
-
Utilisez la fonction
sprintf()
pour convertir la valeur ASCII en caractères C++ -
Utilisez
char()
pour convertir la valeur ASCII en Char
Cet article présente plusieurs méthodes de conversion des valeurs ASCII en caractères C++.
Utiliser l’opérateur d’assignation pour convertir une valeur ASCII en caractère en C++
Le codage ASCII prend en charge 128 caractères uniques, et chacun d’eux est associé à la valeur du caractère correspondant. Comme le langage de programmation C a implémenté les types de char
sous forme de nombres sous le capot, nous pouvons attribuer des valeurs int
correspondantes aux variables de caractères. Par exemple, nous pouvons pousser les valeurs du vecteur int
vers le vecteur char
et les imprimer ensuite sur la console en utilisant l’algorithme std::copy
, qui affichera les caractères ASCII comme prévu.
Notez que l’assignation au type char
ne fonctionne que lorsque la valeur int
correspond à un code ASCII, c’est-à-dire se situe dans la plage 0-127.
#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;
}
Production:
a; b; c; d; e; f; g;
Utilisez la fonction sprintf()
pour convertir la valeur ASCII en caractères C++
La fonction sprintf
est une autre méthode pour convertir les valeurs ASCII en caractères. Dans cette solution, nous déclarons un tableau char
pour stocker les valeurs converties à chaque itération jusqu’à ce que la fonction printf
sorte sur la console. La fonction sprintf
prend le tableau de caractères comme premier argument. Ensuite, vous devez fournir un spécificateur de format %c
, qui indique une valeur de caractère, et ce paramètre indique le type vers lequel l’entrée sera convertie. Enfin, comme troisième paramètre, vous devez fournir une variable source, c’est-à-dire des valeurs ASCII.
#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;
}
Production:
a; b; c; d; e; f; g;
Utilisez char()
pour convertir la valeur ASCII en Char
Alternativement, la fonction char()
cast peut être utilisée pour convertir des valeurs ASCII individuelles en type char
. L’exemple suivant montre comment on peut envoyer des caractères à la console directement à partir du vecteur int
contenant des valeurs ASCII.
#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;
}
Production:
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