Fonction itoa

Fermé
pbs
Messages postés
31
Date d'inscription
mercredi 5 mai 2004
Statut
Membre
Dernière intervention
16 juin 2004
- 15 juin 2004 à 22:09
 Signo - 19 nov. 2014 à 11:49
je cherche une fonction qui me permettra de convertir un int en une chaine de caractére

5 réponses

Canard007
Messages postés
5927
Date d'inscription
mercredi 26 mai 2004
Statut
Contributeur
Dernière intervention
18 septembre 2009
214
16 juin 2004 à 10:07
Salut,

voici quelques lignes de code qui pourront sans doute t aider a aprehender sprintf seul fonction ANSI pour "convertir" un entier en chaine de caractere..en fait il n y a pas vraiment de convertion..on ecrit juste le nombre dans la chaine comme si tu le tapai au clavier.

#include <stdio.h> 
#include <string.h> 

void main () 
{ 
		//notre entier
		int i=17;
		//la chaine dans laquelle on veut mettre notre entier
		char chaine[256];

		//la fonction sprintf avec (destination,format,source)
		//le format doit etre en accord avec la source bien entendu 
		//il fo suivre regle format comme printf
		sprintf(chaine,"%d",i);
		//affichage pour etre sur qu on a bien ecrit 17 :p
		printf ("%s\n",chaine); 
}
4
Yo =) Quel langage? si c'est en C/C++, tu as donné la réponse : itoa(), ou alors sprintf(). ++
2
Ravachol
Messages postés
560
Date d'inscription
vendredi 5 mars 2004
Statut
Membre
Dernière intervention
30 octobre 2005
119
15 juin 2004 à 23:13
Salut,
itoa n'est pas ANSI-C donc pas portable et n'existe que sous Dos/Windows.

A++

La pensée ne commence qu'avec le doute.
ROGER MARTIN DU GARD
0
pbs
Messages postés
31
Date d'inscription
mercredi 5 mai 2004
Statut
Membre
Dernière intervention
16 juin 2004

16 juin 2004 à 00:49
g vu ca. g ecris un prgme que je voulé qu'il me convertisse en char mon int mais ca ne marche pas. est ce vous n'auriez pa une idee de comment je pouré le faire
0
Ravachol
Messages postés
560
Date d'inscription
vendredi 5 mars 2004
Statut
Membre
Dernière intervention
30 octobre 2005
119 > pbs
Messages postés
31
Date d'inscription
mercredi 5 mai 2004
Statut
Membre
Dernière intervention
16 juin 2004

16 juin 2004 à 08:10
Salut,
DestyNov@ t'as donné la réponse sprintf().

A++

La pensée ne commence qu'avec le doute.
ROGER MARTIN DU GARD
0
un int c un char sur 8 bits
0
#include "my_file.h"

int get_len(int n)
{
int len;

len = 1;
if (n < 0)
{
len++;
n = -n;
}
while (n > 9)
{
n /= 10;
len++;
}
return (len);
}

char *create_str(int len, int n, int neg, char *str)
{
while (len >= 0)
{
str[len] = (n % 10) + 48;
n /= 10;
len--;
}
if (neg < 0)
str[0] = '-';
return (str);
}

char *ft_itoa(int n)
{
char *str;
int len;
int neg;

if (n == -2147483648)
return (ft_strdup("-2147483648"));
neg = n;
len = get_len(n);
str = (char *)malloc(sizeof(*str) * (len + 1));
if (!str)
return (NULL);
str[len] = '\0';
len--;
if (n == 0)
{
str[0] = '0';
return (str);
}
if (n < 0)
n = -n;
return (create_str(len, n, neg, str));
}
0
Ps : fonctionne très bien sur UNIX ;)
0
legyptien
Messages postés
381
Date d'inscription
lundi 19 novembre 2007
Statut
Membre
Dernière intervention
2 janvier 2018
8
4 janv. 2008 à 12:17
bonjour,

Moi je cherche une fonction qui convertisse une chaine de caractere en entier? alors bien sur vous allez me dire atoi mais seulement ma chaine de caractere est une succesion de 1 et de 0 (binaire) (qui sont vu comme des caracteres). En fait mon but finale est de convertir un short (binaire) en entier.

Pour cela je transforme le binaire short en chaine de caracteres grace à itoa et puis je trouve pas la seconde fonction qui transforme une chaine de caractere (composé de 1 et de 0) en entier , ca me rendrai un grand service.
Si vous avez du 2 en 1 comme les shampoings c est encore mieux! ;)

merci d avance.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
tu as tes 0 et 1 en char, autant les analyser ds une fonction que tu auras crée ( tu comptes le nombre de 0 et 1, puis apres quand tu trouves un 1 suivant la position, tu incrementes ton nb x 10^ etc .. )
0
Le mieux est tous de même d'utiliser cette fonction standard bien pratique de la "stdlib" :

result = strtoul("1001101011", NULL, 2);

Elles peut servire pour la conversion en binaire, octal, hexadécimal ou décimal.
0