PDA

View Full Version : [C]-Urgente convertire stringa in intero


-Yara-
14-09-2005, 20:50
Salve a tutti...
Ho un problema per un esercizio che devo fare per domani
Praticamente devo convertire una stringa del tipo
char string[10]="123456" in int intero=123456
Praticamente data una stringa contenente numeri, "trasferirla" su un intero.

Grazie :)

-Yara-
14-09-2005, 21:12
Ho risolto, ho messo tutta la stringa in un array e ad ogni elemento ho sottratto 48..

#include <stdio.h>
#include <stdlib.h>

int main()
{
char stringa[11];
int intero[11],i;
gets(stringa);
for(i=0;i<11;i++)
intero[i]=stringa[i];
for(i=0;i<11;i++)
intero[i]=intero[i]-48;
printf("Numero in stringa: \n");
for(i=0;i<11;i++)
printf("%d",intero[i]);
getchar();
return 0;
}

Adesso pero' ho un problema nel senso che questi numeri dovrei metterli in un singolo intero....come posso fare?

anx721
14-09-2005, 21:38
dovresti moltiplicare

il primo numero n1 per 10 alla zero (cioè n1*1) +
il secondo n2 per dieci alla 1 (cioè n2*10) +
il terzo numero per dieci alla 2 (cioè n3*100)
ecc...

con un ciclo for lo fai facilmente sommando i singoli contributi di ogni cifra.

Futuregames
14-09-2005, 21:42
dovresti moltiplicare

il primo numero n1 per 10 alla zero (cioè n1*1) +
il secondo n2 per dieci alla 1 (cioè n2*10) +
il terzo numero per dieci alla 2 (cioè n3*100)
ecc...

con un ciclo for lo fai facilmente sommando i singoli contributi di ogni cifra.


con borland abbiamo provato pow10l ma da errori: 0 in più, numeri diversi ecc

71104
14-09-2005, 22:00
veramente in C ci starebbe la semplicissima atoi... che sta per "Ansi to Integer"... :p

anx721
14-09-2005, 22:25
con borland abbiamo provato pow10l ma da errori: 0 in più, numeri diversi ecc


che significa?

non c'è bisogno di usare pow, nel ciclo for basta moltiplicare per 10 una variabile impostata a 1 all'inizio: ad ogni iterazione successiva avrà il giusto valore.

Se si tratta di un esercizio non credo che debba usare atoi

maulattu
14-09-2005, 22:50
veramente in C ci starebbe la semplicissima atoi... che sta per "Ansi to Integer"... :p

itoa fa il contrario :D

71104
14-09-2005, 23:19
itoa fa il contrario :D infatti io ho detto atoi...

Ziosilvio
14-09-2005, 23:41
itoa fa il contrario :D
... ma non è standard :(

cionci
15-09-2005, 00:43
atoi è standard...itoa non è standard... Altrimenti c'è sscanf...