Votre question

[Langage C] Convertir un entier en caractère

Tags :
  • string
  • Programmation
Dernière réponse : dans Programmation
22 Mai 2005 15:22:01

Bonjour,

Quelqu'un a une idée pour convertir un entier (int) en caractère de manière à pouvoir le concaténer à une chaîne de caractère via la fonction strcat() ?

Merci,
dachu

Autres pages sur : langage convertir entier caractere

22 Mai 2005 15:26:04

  1. Reformatting atof(3), please wait...
  2. ATOF(3) Linux Programmer's Manual ATOF(3)
  3.  
  4. NAME
  5. atof - convert a string to a double.
  6.  
  7. SYNOPSIS
  8. #include <stdlib.h>
  9.  
  10. double atof(const char *nptr);
  11.  
  12. DESCRIPTION
  13. The atof() function converts the initial portion of the string pointed to by nptr to double.
  14. The behaviour is the same as
  15.  
  16. strtod(nptr, (char **)NULL);
  17.  
  18. except that atof() does not detect errors.
  19.  
  20. RETURN VALUE
  21. The converted value.
  22.  
  23. CONFORMING TO
  24. SVID 3, POSIX, BSD 4.3, ISO 9899
  25.  
  26. SEE ALSO
  27. atoi(3), atol(3), strtod(3), strtol(3), strtoul(3)
  28.  
  29. GNU 1993-03-29 ATOF(3)
22 Mai 2005 15:37:02

Ca ne fonctionne pas :-( ! Ca crée un bug quand il lance la fonction...

Je vous la montre :

--------------------------------
....
char adresse[30] = "" ;
char nbr ;
temp = classement->courant ;
strcat(adresse,FICH_DOSSIER) ;
strcat(adresse,"/") ;
strcat(adresse,FICH_PREF_COMPET) ;
strtod(competition.id, nbr);
//strcat(adresse,competition.id) ;
strcat(adresse,".") ;
strcat(adresse,FICH_EXT) ;
fich = fopen(adresse, "wb") ;
....
--------------------------------
Contenus similaires
22 Mai 2005 15:56:59

  1. [asmodaiii@phoenix:~] $ cat test.c
  2. #include <stdlib.h>
  3.  
  4. char *test(int nb)
  5. {
  6. int i;
  7. int cpt;
  8. char *res;
  9.  
  10. for (i = 1, cpt = 1; nb / i >= 10; i *= 10, cpt++)
  11. ;
  12. res = malloc(sizeof(*res) * (cpt + 1));
  13. for (cpt = 0; i; cpt++, i /= 10)
  14. res[cpt] = (nb / i) % 10 + '0';
  15. res[cpt] = '\0';
  16. return (res);
  17. }
  18.  
  19. int main()
  20. {
  21. printf("%s\n", test(4321));
  22. }
22 Mai 2005 16:48:25

Merci à tous !

J'y suis arrivé autrement car je n'y arrivais pas avec vos fonctions... Ca compliait, mais ca me faisait une erreur d'adresse mémoire !

J'ai utilisé une fonction de la bibliothèque en faisant :

---------------------------------------------------
char *nbr=(char *)malloc(sizeof(char) * 10) ;
itoa(competition.id,nbr,10) ;
---------------------------------------------------

Encore merci à tous !
dachu
Contenus similaires
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS