View Full Version : conversione int-stringa
chiara3.0
17-07-2005, 10:57
Ciao
In C ,esiste una funzione che converte un intero in una stringa?
Grazie
ciao
chiara
/* convert an integer to a string */
#include <stdio.h>
#include <stdlib.h>
main()
{
int sum;
char buff[20];
printf("Enter in an integer ");
scanf(" %d", &sum );
printf( "As a string it is %s\n", itoa( sum, buff, 10 ) );
}
Note that itoa() takes three parameters,
* the integer to b converted
* a character buffer into which the resultant string is stored
* a radix value (10=decimal, 16=hexadecimal)
In addition, itoa() returns a pointer to the resultant string.
Fenomeno85
17-07-2005, 11:39
utilizza sprintf
~§~ Sempre E Solo Lei ~§~
repne scasb
17-07-2005, 17:11
#include <stdio.h>
char * __itoa(char *,int,int);
void main(void)
{
char string[(sizeof(int)<<3)+1];
int num,base;
printf("Inserire un numero da convertire: ");
scanf("%19d",&num);
printf("Inserire la base decimale da utilizzare: ");
scanf("%2d",&base);
if(__itoa(string,num,base));
printf("%s\n",string);
}
char * __itoa(string,num,base)
char *string;
int num,base;
{
char tmp_buf[sizeof(int)<<3];
int ex,pos=sizeof(tmp_buf)-1;
char *tmp_string=string;
if((base>36)||(base<2))
return(0);
if(num<0)
{
*string++='-';
num=-num;
}
do
{
ex=num%base;
num/=base;
*(tmp_buf+pos--)=ex<10?ex+'0':ex+'A'-10;
} while (num);
while (++pos!=(sizeof(int)<<3))
*string++=*(tmp_buf+pos);
*string=0x00;
return(tmp_string);
}
Utilizzando i logaritmi si puo' fare di meglio.
chiara3.0
17-07-2005, 18:05
Grazie a tutti
ciao
chiara
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.