87 votes

Comment convertir des entiers en caractères en C ?

Comment convertir des entiers en caractères en C ?

121voto

Ofir Points 5760

Un caractère en C est déjà un nombre (le code ASCII du caractère), aucune conversion n'est requise.

Si vous souhaitez convertir un chiffre en caractère correspondant, vous pouvez simplement ajouter '0' :

c = i +'0';

Le '0' est un caractère de la table ASCll.

36voto

ratty Points 3926

Vous pouvez essayer la fonction de bibliothèque atoi(). Aussi sscanf() et sprintf() aideraient.

Voici un petit exemple pour afficher la conversion d'entier en chaîne de caractères :

main()
{
  int i = 247593;
  char str[10];

  sprintf(str, "%d", i);
  // Now str contains the integer as characters
} 

Voici un autre exemple

#include <stdio.h>

int main(void)
{
   char text[] = "StringX";
   int digit;
   for (digit = 0; digit < 10; ++digit)
   {
      text[6] = digit + '0';
      puts(text);
   }
   return 0;
}

/* my output
String0
String1
String2
String3
String4
String5
String6
String7
String8
String9
*/

18voto

Amarghosh Points 33957

Il suffit d'assigner la variable int char

int i = 65;
char c = i;
printf("%c", c); //prints A

15voto

Deepak Yadav Points 506

Pour convertir des entiers en caractères, seuls 0 à 9 seront convertis. Comme nous savons que la valeur ASCII de 0 est 48, nous devons donc ajouter sa valeur à la valeur entière pour la convertir en le caractère souhaité d'où

int i=5;
char c = i+'0';

6voto

Anurag Semwal Points 71

Pour convertir int en char use :

int a=8;  
char c=a+'0';
printf("%c",c);       //prints 8  

Pour convertir char en int use :

char c='5';
int a=c-'0';
printf("%d",a);        //prints 5

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X