Fonction predefinie en C

Fermé
touf_truc Messages postés 57 Date d'inscription samedi 21 octobre 2006 Statut Membre Dernière intervention 23 avril 2007 - 12 févr. 2007 à 16:06
mamiemando Messages postés 33268 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 18 septembre 2024 - 14 févr. 2007 à 02:00
bonsoir;
esque vous pouvez m'aider a trouver les fonctions predefinies qu'elles converti les entiers en chaine de caractere et l'inverse.
merci

2 réponses

Stupeflip Messages postés 391 Date d'inscription jeudi 8 février 2007 Statut Membre Dernière intervention 4 décembre 2007 94
12 févr. 2007 à 16:19
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.
0
touf_truc Messages postés 57 Date d'inscription samedi 21 octobre 2006 Statut Membre Dernière intervention 23 avril 2007 1
12 févr. 2007 à 16:39
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));
}
0
Stupeflip Messages postés 391 Date d'inscription jeudi 8 février 2007 Statut Membre Dernière intervention 4 décembre 2007 94
12 févr. 2007 à 16:49
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 :)
0
touf_truc Messages postés 57 Date d'inscription samedi 21 octobre 2006 Statut Membre Dernière intervention 23 avril 2007 1 > Stupeflip Messages postés 391 Date d'inscription jeudi 8 février 2007 Statut Membre Dernière intervention 4 décembre 2007
12 févr. 2007 à 17:24
non;
ecrire la fonction miroir par d'autre façon, par recurence.
0
Stupeflip Messages postés 391 Date d'inscription jeudi 8 février 2007 Statut Membre Dernière intervention 4 décembre 2007 94 > Stupeflip Messages postés 391 Date d'inscription jeudi 8 février 2007 Statut Membre Dernière intervention 4 décembre 2007
13 févr. 2007 à 11:31
Ben ca depend,

Tu veux qu il refasse un miroir dedans ? Comme ca ca revient dans le bon ordre et ainsi de suite ? Détaille un peu plus ^^
0
mamiemando Messages postés 33268 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 18 septembre 2024 7 780
14 févr. 2007 à 02:00
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
0