Convertire Integer a Char in C
-
Aggiungere
'0'
per convertireint
inchar
in C -
Assegnare un valore
int
a un valorechar
per convertireint
inchar
in C -
Utilizzare la funzione
sprintf()
per convertireint
inchar
in C - Conclusioni
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 datochar
.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
- Converti Char * in Int in C
- Converti un intero in una stringa in C
- Converti una stringa in numero intero in C