NUM_A_LETRA.c



/* CONVERTIR DE NUMERO A LETRA

	En al rango de 0 --> 999
*/

#include <stdio.h>
#include <string.h>
#include <conio.h>

					// conversiOn num - let.
char *texto;				// variable global (salida en texto)

void main(void)
{
   int Num,N,T,C,D,U;
   clrscr();
   gotoxy(10,10);
   scanf("%d",&Num); N = Num;
   gotoxy(10,13);
   printf("Convirtiendo a texto ...\n\n");
   C = N/100;
   T = N - (C*100);
   D = T/10;
   U = T - (D*10);
   conv(C,D,U);
   printf("%d\t%d\t%d\n",C,D,U);
   printf("%s",texto);
   getch();
}


void conv(int C, int D, int U)
{
  char *T;
  texto = "";
  if (C)
   {
      T = "";
      switch(C)
       {
	  case 1:
		 T = "cien";
		 if ((D) || (U))
		     strcat(T,"to ");
		 break;
	  case 2: T = "doscientos "; break;
	  case 3: T = "trescientos "; break;
	  case 4: T = "cuatrocientos "; break;
	  case 5: T = "quinientos "; break;
	  case 6: T = "seiscientos "; break;
	  case 7: T = "setecientos "; break;
	  case 8: T = "ochocientos "; break;
	  case 9: T = "novecientos "; break;
       }   //  FIN DE SWITCH(C)
       strcat(texto, T);
       T = "";
   }  // FIN DE IF (C)
  if (D)
   {
      T = "";
      switch(D)
       {
	  case 1:
		 if (!U) T = "diez";
		 if ((U) && (U < 6))
		  {
		    if (U == 1) T = "once";
		    if (U == 2) T = "doce";
		    if (U == 3) T = "trece";
		    if (U == 4) T = "catorce";
		    if (U == 5) T = "quince";
		  }     // FIN DE IF (U < 6) && D = 1
		 if (U >= 6) T = "dieci";
		 break;
	  case 2:
		 if (!U) T = "veinte";
		 if (U) T = "veinti";
		 break;
	  case 3: T = "treinta "; break;
	  case 4: T = "cuarenta "; break;
	  case 5: T = "cincuenta "; break;
	  case 6: T = "sesenta "; break;
	  case 7: T = "setenta "; break;
	  case 8: T = "ochenta "; break;
	  case 9: T = "noventa "; break;
       }  // FIN DE SWITCH(D)
      strcat(texto, T);
      T = "";
      if ((U) && (D > 2)) strcat(texto, "y ");
   }    // FIN DE SI HAY DECENAS
  if (U)
   {
      T = "";
      if ((!(D == 1)) && (U < 6))
       {
	  switch(U)
	   {
	      case 1: T = "uno";    break;
	      case 2: T = "dos";    break;
	      case 3: T = "tres";   break;
	      case 4: T = "cuatro"; break;
	      case 5: T = "cinco";  break;
	   }   //  FIN DE SWITCH(U)
       }   // FIN DE IF (D > 1)
      if (U > 5)
       {
	  switch(U)
	   {
	      case 6: T = "seis";  break;
	      case 7: T = "siete"; break;
	      case 8: T = "ocho"; break;
	      case 9: T = "nueve"; break;
	   }   // FIN DE SWITCH (U)
       }   // FIN DE IF (U > 5)
   }    // FIN DE IF (U)
   strcat(texto, T);
}   // FIN DE LA FUNCION CONV(i,i,i)