Converti ASCII in Char in C++
- Usa l’operatore di assegnazione per convertire il valore ASCII in Char in C++
-
Usa la funzione
sprintf()
per convertire il valore ASCII in Char in C++ -
Usa
char()
per convertire il valore ASCII in char
Questo articolo illustrerà più metodi su come convertire i valori ASCII in caratteri in C++.
Usa l’operatore di assegnazione per convertire il valore ASCII in Char in C++
La codifica ASCII supporta 128 caratteri univoci e ciascuno è mappato al valore del carattere corrispondente. Poiché il linguaggio di programmazione C implementava i tipi char
come numeri sottostanti, possiamo assegnare i valori int
corrispondenti alle variabili carattere. Ad esempio, possiamo trasferire i valori dal vettore int
al vettore char
e poi stamparli sulla console usando l’algoritmo std::copy
, che mostrerà i caratteri ASCII come previsto.
Notare che l’assegnazione al tipo char
funziona solo quando il valore int
corrisponde a un codice ASCII e.i. è compreso tra 0 e 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;
}
Produzione:
a; b; c; d; e; f; g;
Usa la funzione sprintf()
per convertire il valore ASCII in Char in C++
La funzione sprintf
è un altro metodo per convertire i valori ASCII in caratteri. In questa soluzione, dichiariamo un array char
per memorizzare i valori convertiti ad ogni iterazione fino a quando printf
non esce nella console. sprintf
accetta la matrice di caratteri come primo argomento. Successivamente, dovresti fornire un identificatore di formato %c
, che denota un valore di carattere, e questo parametro indica il tipo in cui verrà convertito l’input. Infine, come terzo parametro, dovresti fornire la variabile sorgente, cioè i valori 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;
}
Produzione:
a; b; c; d; e; f; g;
Usa char()
per convertire il valore ASCII in char
In alternativa, si può usare char()
cast per convertire singoli valori ASCII in tipo char
. L’esempio seguente mostra come si potrebbero inviare caratteri alla console direttamente dal vettore int
contenente valori 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;
}
Produzione:
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