Ciao a tutti, sono nuovo, volevo chiedere un aiuto per correggere un programma. questo dovrebbe leggere una stringa e tradurla in un numero intero. sembra funzionare ma alla fine mi stampa sempre 0. qualcuno mi può aiutare a correggerlo?
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int traduci_numero (char s[]);
int traduci_cifra (char s[]);
int main ()
{
char s[16];
int numero;
printf("inserisci una stringa da convertire \n");
scanf ("%s", s);
numero = traduci_numero(s);
printf ("il numero inserito è %d", numero );
return EXIT_SUCCESS;
}
int traduci_numero (char s[])
{
int i, j, risultato;
char temp[16];
i = 0; j = 0;
risultato = 0;
while (s != '\0')
{
if (s != ',' && s != '.')
{
temp[j] = s;
j++;
i++;
}
else
{
temp[j] = '\0';
risultato = risultato * 10 + traduci_cifra (temp);
j = 0;
i++;
}
}
return risultato;
}
int traduci_cifra (char s[])
{
int i;
char cifre[10][8] = { "zero", "uno", "due", "tre", "quattro", "cinque", "sei", "sette", "otto", "nove" };
for (i = 0; i < 10; i++)
if (strcmp (s, cifre) ==0)
return i;
return -1; /* cifra non valida */
}