Convertire Integer a Char in C

Satishkumar Bharadwaj 12 ottobre 2023
  1. Aggiungere '0' per convertire int in char in C
  2. Assegnare un valore int a un valore char per convertire int in char in C
  3. Utilizzare la funzione sprintf() per convertire int in char in C
  4. Conclusioni
Convertire Integer a Char in C

Convertire un intero in un carattere nel linguaggio di programmazione C può essere essenziale in vari scenari. I caratteri in C sono rappresentati come valori ASCII, rendendo relativamente semplice effettuare questa conversione.

Questo tutorial esplora diversi metodi per convertire un intero in un carattere in C, che vanno dalla semplice addizione al type casting esplicito e all’utilizzo della funzione sprintf().

Aggiungere '0' per convertire int in char in C

Il valore ASCII di '0' è 48. Pertanto, aggiungendo il suo valore a un intero lo converterà nel carattere corrispondente.

Ecco un programma C completo che dimostra questo metodo:

#include <stdio.h>
int main(void) {
  int number = 71;

  char charValue = number + '0';
  printf("The character value is: %c", charValue);

  return 0;
}

Output:

The character value is: w

Sappiamo che '0' ha un valore ASCII di 48 e aggiungere 71 a 48 dà come risultato 119. Nel set di caratteri ASCII, il valore 119 corrisponde al carattere w.

Pertanto, l’output del programma visualizza il valore carattere w.

Inoltre, per convertire interi nell’intervallo da 0 a 9 in caratteri, possiamo utilizzare lo stesso approccio:

#include <stdio.h>
int main(void) {
  int number = 7;
  char charValue = number + '0';
  printf("The value is: %c", charValue);
  return 0;
}

Output:

The value is: 7

Qui, il codice dichiara una variabile di carattere chiamata charValue e calcola anche il suo valore aggiungendo l’intero memorizzato in number al valore ASCII di '0'.

In C, i caratteri sono rappresentati come interi basati sulla codifica ASCII, quindi questa operazione converte efficacemente l’intero 7 nel carattere '7'.

Un altro programma per convertire un valore intero in un carattere è mostrato di seguito:

#include <stdio.h>

int main(void) {
  char charValue[] = "stringValueX";
  int anyNumber;
  for (anyNumber = 0; anyNumber < 10; ++anyNumber) {
    charValue[11] = anyNumber + '0';
    puts(charValue);
  }
  return 0;
}

Output:

stringValue0
stringValue1
stringValue2
stringValue3
stringValue4
stringValue5
stringValue6
stringValue7
stringValue8
stringValue9

Il codice fornito in precedenza inizia con l’inizializzazione di un array di caratteri chiamato charValue con la stringa "stringValueX" e dichiara una variabile intera chiamata anyNumber.

Entra quindi in un ciclo for che itera da 0 a 9. All’interno del ciclo, il codice sostituisce il carattere all’indice 11 di charValue aggiungendo il valore di anyNumber al valore ASCII di '0', sostituendo efficacemente la X con i numeri da 0 a 9.

La funzione puts(charValue) stampa il charValue modificato in ogni iterazione su righe separate. Di conseguenza, il programma genera un output in cui "stringValueX" viene visualizzato con la X sostituita dai numeri da 0 a 9, ognuno su una riga separata.

Assegnare un valore int a un valore char per convertire int in char in C

Un altro modo per convertire un valore intero in un valore di carattere è assegnare direttamente l’intero a una variabile di carattere. Verrà stampato il valore di carattere corrispondente al valore intero.

Ecco un esempio:

#include <stdio.h>

int main(void) {
  int number = 65;
  char charvalue = number;

  printf("The character value: %c", charvalue);

  return 0;
}

Output:

The character value: A

Possiamo anche utilizzare il type casting esplicito per convertire un intero in un carattere. Vedere il codice di esempio qui sotto.

#include <stdio.h>
int main(void) {
  int number = 67;
  char charValue = (char)number;
  printf("The character value = %c", charValue);

  return 0;
}

Output:

The character value = C

In questo caso, il programma converte esplicitamente il valore intero di number in un carattere utilizzando (char) prima del nome della variabile. Questo type casting indica al compilatore di trattare number come un carattere.

Utilizzare la funzione sprintf() per convertire int in char in C

La funzione sprintf() funziona allo stesso modo della funzione printf(), ma anziché inviare l’output alla console, restituisce la stringa formattata. Ci consente di convertire un intero in un carattere e di memorizzarlo in una stringa.

Sintassi di sprintf()

int sprintf(char *strValue, const char *format, [ arg1, arg2, ... ]);
  • strValue è un puntatore del tipo di dato char.
  • format viene utilizzato per visualizzare il tipo di output insieme al segnaposto.
  • [arg1,arg2...] sono l(i/e) numero/i intero/i da convertire.

La funzione scrive i dati nella stringa puntata da strValue e restituisce il numero di caratteri scritti in strValue, escludendo il carattere nullo. Il valore restituito viene generalmente scartato.

Se si verifica un errore durante l’operazione, restituisce -1.

Ecco un esempio:

#include <stdio.h>
int main(void) {
  int number = 72;
  char charValue[1];

  sprintf(charValue, "%c", number);
  printf("The character value = %s", charValue);

  return 0;
}

Output:

The character value = H

In questo esempio, abbiamo utilizzato sprintf() per convertire l’intero 72 nel carattere H e lo abbiamo memorizzato nell’array charValue. È importante assicurarsi che l’array di caratteri (charValue) sia sufficientemente grande per contenere il char convertito.

Conclusioni

In questo tutorial, abbiamo esplorato diverse modalità per convertire interi in caratteri nel linguaggio di programmazione C. Ogni metodo offre i suoi vantaggi e casi d’uso, consentendoti di scegliere l’approccio più adatto in base alle tue specifiche esigenze di programmazione.

Articolo correlato - C Integer

Articolo correlato - C Char