PDA

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

honny
17-07-2005, 10:59
/* 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