Comment convertir ASCII en caractères en C

  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

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 <iostream>
#include <vector>
#include <iterator>
#include <charconv>

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

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 <iostream>
#include <vector>
#include <array>
#include <iterator>
#include <charconv>

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

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 <iostream>
#include <vector>
#include <iterator>
#include <charconv>

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

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

Article connexe - C++ Char

  • Comment convertir une chaîne de caractères en tableau de caractères en C++
  • Comment convertir Int en Char Array en C++