IvoSilva

[PROG1] Ficha 10 | Exercício 4

Jan 9th, 2012
234
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.68 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <string.h>
  3. #define LIMIT 200
  4. void concat(char cifra[] , char add[] , int *n)
  5. {
  6.     strcat (cifra , add) ;
  7.     *n += strlen (add) ;
  8. }
  9. void main()
  10. {
  11.     char frase[LIMIT] , cifra[LIMIT] = "" ;
  12.     int i , n = 0 ;
  13.     printf ("Frase? ") ;
  14.     fgets (frase , LIMIT , stdin) ;
  15.     frase[strlen(frase) - 1] = '\0' ;
  16.     for (i = 0 ; i < strlen(frase) ; i++)
  17.     {
  18.         if (isdigit(frase[i])) switch (frase[i])
  19.         {
  20.             case '0' : if (frase [i - 1] != '1') concat(cifra , "zero" , &n) ;
  21.                        break ;
  22.             case '9' : concat(cifra , "nove" , &n) ;
  23.                        break ;
  24.             case '8' : concat(cifra , "oito" , &n) ;
  25.                        break ;
  26.             case '7' : concat(cifra , "sete" , &n) ;
  27.                        break ;
  28.             case '6' : concat(cifra , "seis" , &n) ;
  29.                        break ;
  30.             case '5' : concat(cifra , "cinco" , &n) ;
  31.                        break ;
  32.             case '4' : concat(cifra , "quatro" , &n) ;
  33.                        break ;
  34.             case '3' : concat(cifra , "três" , &n) ;
  35.                        break ;
  36.             case '2' : concat(cifra , "dois" , &n) ;
  37.                        break ;
  38.             case '1' : if (frase[i + 1] == '0')
  39.                        {
  40.                            concat(cifra , "dez" , &n) ;
  41.                            i++ ;
  42.                        }
  43.                        else concat(cifra , "um" , &n) ;
  44.                        break ;
  45.         }
  46.         else
  47.         {
  48.             cifra[n] = frase[i] ;
  49.             n++ ;
  50.         }
  51.     }
  52.     cifra[n] = '\0' ;
  53.     printf ("Resultado: %s\n" , cifra) ;
  54. }
Advertisement
Add Comment
Please, Sign In to add comment