Converter strings em C?

Meu programa tem que receber um número por extenso entre 0 e 999 e converter para inteiro. Até agora converte o que está nos vetores mas não converte outros números como por ex: 21(vinte e um).

#include <stdio.h>

#include <string.h>

char unid[10][7]={"zero","um","dois","tres","quatro","cinco","seis","sete","oito","nove",};

char dez[11][10]={"","dez","onze","doze","treze","catorze","quinze","dezesseis","dezessete","dezoito","dezenove"};

char dez2[9][10]={"","vinte","trinta","quarenta","cinquenta","sessenta","setenta","oitenta","noventa"};

char cent[10][13]={"","cem","duzentos","trezentos","quatrocentos","quinhentos","seiscentos","setecentos","oitocentos","novecentos"};

int main(){

    int i;

    char num_ext[999];

    printf("Digite um numero: ");

    scanf("%[^\n]s", num_ext);

    for(i=0;i<999;i++){

        if(strcmp(num_ext,unid[i])==0){

           printf(" => %s eh igual a -> %d\n",num_ext,i);

        }

        else if(strcmp(num_ext,dez[i])==0){

            printf(" => %s eh igual a -> %d\n",num_ext,i+9);

        }

        else if(strcmp(num_ext,dez2[i])==0){

            printf(" => %s eh igual a -> %d\n",num_ext,i+19);

        }

        else if(strcmp(num_ext,cent[i])==0){

            printf(" => %s eh igual a -> %d\n",num_ext,i+198);

        }

    }

    return 0;

}

1 Resposta

Classificação
  • Há 1 mês

    JjjJJ+j+j++hj+j+j++=¢{{

    • Faça login para comentar as respostas
Tem mais perguntas? Obtenha suas respostas perguntando agora.