Cómo convertir el ASCII a caractere en C++

Jinku Hu 12 octubre 2023
  1. Usar el Operador de Asignación para convertir el valor ASCII a caractere en C++
  2. Use la función sprintf() para convertir el valor ASCII a Char en C++
  3. Use char() para convertir el valor ASCII a Char
Cómo convertir el ASCII a caractere en C++

Este artículo demostrará múltiples métodos sobre cómo convertir los valores ASCII a caracteres en C++.

Usar el Operador de Asignación para convertir el valor ASCII a caractere en C++

La codificación ASCII soporta 128 caracteres únicos, y cada uno de ellos se asigna al valor de carácter correspondiente. Desde que el lenguaje de programación C implementó los tipos char como números bajo el capó, podemos asignar los valores int correspondientes a las variables de caracteres. Como ejemplo, podemos empujar los valores del vector int al vector char y luego imprimirlos en la consola usando el algoritmo std::copy, que mostrará los caracteres ASCII como se espera.

Tenga en cuenta que asignar al tipo char sólo funciona cuando el valor int corresponde a un código ASCII, es decir, está en el rango 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;
}

Resultado:

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

Use la función sprintf() para convertir el valor ASCII a Char en C++

La función sprintf es otro método para convertir los valores ASCII en caracteres. En esta solución, declaramos un array char para almacenar los valores convertidos cada iteración hasta que el printf salga a la consola. sprintf toma el array de caracteres como primer argumento. A continuación, debes proporcionar un especificador de formato %c, que denota un valor de carácter, y este parámetro indica el tipo al que se convertirá la entrada. Finalmente, como tercer parámetro, deberías proporcionar la variable de origen, es decir, valores 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;
}

Resultado:

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

Use char() para convertir el valor ASCII a Char

Alternativamente, char() puede ser usado para convertir valores ASCII individuales al tipo char. El siguiente ejemplo demuestra cómo se pueden enviar caracteres a la consola directamente desde el vector int que contiene valores 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;
}

Resultado:

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

Artículo relacionado - C++ Char