Como converter ASCII para Char em C++
- Usar Operador de Atribuição para Converter Valores ASCII para Cartas em C++
-
Utilize a função
sprintf()
para converter o valor ASCII para Char em C++ -
Utilize
char()
para converter o valor ASCII em Char
Este artigo demonstrará vários métodos sobre como converter valores ASCII em caracteres em C++.
Usar Operador de Atribuição para Converter Valores ASCII para Cartas em C++
A codificação ASCII suporta 128 caracteres únicos, e cada um deles é mapeado para o valor de caractere correspondente. Uma vez que a linguagem de programação C implementou os tipos char
como números abaixo do capô, podemos atribuir valores de int
correspondentes às variáveis de caracteres. Como exemplo, podemos empurrar valores do vetor int
para o vetor char
e então imprimi-los para o console utilizando o algoritmo std::copy
, que exibirá os caracteres ASCII como esperado.
Observe que atribuir ao tipo char
somente funciona quando o valor int
corresponde a um código ASCII, ou seja, está na faixa de 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;
Utilize a função sprintf()
para converter o valor ASCII para Char em C++
A função sprintf
é outro método para converter os valores ASCII em caracteres. Nesta solução, declaramos uma array char
para armazenar os valores convertidos a cada iteração até que a printf
saia para o console. A sprintf
toma a array de caracteres como o primeiro argumento. Em seguida, você deve fornecer um especificador de formato %c
, que denota um valor de caractere, e este parâmetro indica o tipo para o qual a entrada será convertida. Finalmente, como terceiro parâmetro, você deve fornecer a variável fonte, ou seja, 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;
Utilize char()
para converter o valor ASCII em Char
Alternativamente, o char()
lançamento pode ser utilizado para converter valores ASCII individuais para o tipo char
. O exemplo a seguir demonstra como se poderia emitir caracteres para o console diretamente do vetor int
contendo 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