Converti ASCII in Char in C++

Jinku Hu 12 ottobre 2023
  1. Usa l’operatore di assegnazione per convertire il valore ASCII in Char in C++
  2. Usa la funzione sprintf() per convertire il valore ASCII in Char in C++
  3. Usa char() per convertire il valore ASCII in char
Converti ASCII in Char in C++

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
Autore: 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

Articolo correlato - C++ Char