Cómo convertir el ASCII a caractere en C++
- Usar el Operador de Asignación para convertir el valor ASCII a caractere en C++
-
Use la función
sprintf()
para convertir el valor ASCII a Char en C++ -
Use
char()
para convertir el valor ASCII a Char
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
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