Comment convertir ASCII en caractères en C++

Jinku Hu 12 octobre 2023
  1. Utiliser l’opérateur d’assignation pour convertir une valeur ASCII en caractère en C++
  2. Utilisez la fonction sprintf() pour convertir la valeur ASCII en caractères C++
  3. Utilisez char() pour convertir la valeur ASCII en Char
Comment convertir ASCII en caractères en C++

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
Auteur: 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

Article connexe - C++ Char