Fonction predefinie en C
bonsoir;
esque vous pouvez m'aider a trouver les fonctions predefinies qu'elles converti les entiers en chaine de caractere et l'inverse.
merci
esque vous pouvez m'aider a trouver les fonctions predefinies qu'elles converti les entiers en chaine de caractere et l'inverse.
merci
Configuration: Windows XP Firefox 2.0.0.1
2 réponses
-
Bonsoir !
Pour passer d'un char à un int, tu peux faire un atoi.
Pour passer d'un int à un char, tu peux lui donner sa valeur ASCII en int et l'utiliser en char. En pratique tu lui rajoutes 30.
Exemple :int valeur_int=2; int valeur_char=30+valeur_int; printf("%c",valeur_char);
Ca va t'afficher '2' et non 32 :) Ca marche dans l'autre sens mais atoi le fait automatiquement.-
merci .
alors voici mon exemple qu'il fonction correctement
esque je peut ecrire la fonction de façon recurcive.
#include<string.h>
#include<stdio.h>
#include<stdlib.h>
int miroir(int x)
{
char buffer1[100];
char buffer2[100];
int n,i;
sprintf(buffer1,"%d",x);
n=strlen(buffer1);
// Recopier de droite à gauche
for(i=0;i<n;++i)
buffer2[n-1-i]=buffer1[i];
return(atoi(buffer2));
}
main()
{
int x;
printf("\n Introduire un nombre : ");
scanf("%d",&x);
printf("\n %d | %d",x,miroir(x));
} -
Tu veux dire faire cette ligne-là de façon récursive ?
buffer2[n-1-i]=buffer1[i];
Pour info, pour mettre des fonctions récursives il faut vraiment que la fonction soit simple, ou alors il faut que ça soit vraiment claire et transparent parce que sinon tu trouveras jamais les causes des éventuelles erreurs :)
-
-
D'une chaine vers un entier le plus propre c'est un sprintf, et dans l'autre sens un atoi
#include <stdio.h> int main(){ char buffer[69]; int x = 2869,y; sprintf(buffer,"%d",x); printf("buffer = %s\n",buffer); y = atoi(buffer); printf("y = %d\n",y); return 0; }
Bonne chance