Advertisement
tresonance

Ecrire_en_lettre

Oct 20th, 2018
139
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 5.54 KB | None | 0 0
  1. /****** IN C LANGUAGE *************/
  2. #include <string.h>
  3. #include <stdio.h>
  4. #include <stdlib.h>
  5. #include <math.h>
  6.  
  7. char* itoa(int val, int base)
  8. {
  9.    
  10.     static char buf[32] = {0};
  11.    
  12.     int i = 30;
  13.    
  14.     for(; val && i ; --i, val /= base)
  15.    
  16.         buf[i] = "0123456789abcdef"[val % base];
  17.    
  18.     return &buf[i+1];
  19.    
  20. }
  21.  
  22. void helper(int n)
  23. {
  24.     char *number;
  25.     int i;
  26.     int len;
  27.     char copy[20];
  28.     int slice;
  29.  
  30.     static char *str1[] = {
  31.         "\0", "one", "two", "three", "four", "five", "six", "seven",
  32.         "eight", "nine", "ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen", "twenty"
  33.     };
  34.    
  35.     static char *str2[] = {"\0", "\0", "twenty", "firty", "fourty", "fifty", "sixty", "seventy", "eighty", "ninety", "hundreds", "thousands", "millions", "billions"
  36.     };
  37.  
  38.     static char *str3[] = {"\0", "\0", "\0", "hundred", "thousands","millions", "billions"
  39.     };
  40.  
  41.     number = itoa(n, 10);
  42.     len = strlen(number);
  43.     slice = (int)(ceil(len/3.0));
  44.     printf("%d : ", n);
  45.     i = -1;
  46.     while (++i < len)
  47.     {
  48.         if (slice == 1)
  49.         {
  50.             if (len == 1)
  51.                 printf("%s ", str1[number[i] - '0']);
  52.             if (len == 2)
  53.             {
  54.                 if (n < 21)
  55.                 {
  56.                     printf("%s", str1[n]);
  57.                     break;
  58.                 }
  59.                 else
  60.                 {
  61.                     if (i == 0)
  62.                     printf("%s ", str2[number[i] - '0']);
  63.                     else
  64.                         printf("%s",str1[number[i] - '0']);
  65.                 }
  66.             }
  67.             else if (len == 3)
  68.             {
  69.                 if (i == 0)
  70.                     printf(" %s %s", str1[number[i] - '0'], str3[len]);
  71.                 else if (i == 1)
  72.                     printf(" %s ", str2[number[i] - '0']);
  73.                 else
  74.                     printf("%s ",str1[number[i] - '0']);
  75.             }
  76.         }/////
  77.         else if (slice == 2)
  78.         {
  79.             if (len == 4)
  80.             {
  81.                 if (i == 0)
  82.                     printf(" %s %s", str1[number[i] - '0'], str3[len]);
  83.                 else if (i == 1)
  84.                     printf(" %s %s", str1[number[i] - '0'], str3[len -1]);
  85.                 else if (i == 2)
  86.                     printf(" %s", str2[number[i] - '0']);
  87.                 else if (i == 3)
  88.                     printf(" %s", str1[number[i] - '0']);
  89.             }
  90.             else if (len == 5)
  91.             {
  92.                 if (i == 0)
  93.                     printf(" %s", str2[number[i] - '0']);
  94.                 else if (i == 1)
  95.                     printf(" %s %s", str1[number[i] - '0'] , str3[len -1]);
  96.                 else if (i == 2)
  97.                     printf(" %s %s", str1[number[i] - '0'], number[i] - '0'?str3[len - 2]: "\0");
  98.                 else if (i == 3)
  99.                     printf(" %s", str2[number[i] - '0']);
  100.                 else if (i == 4)
  101.                     printf(" %s", str1[number[i] - '0']);
  102.             }
  103.             else if (len == 6)
  104.             {
  105.                 printf("%s ",str1[number[i] - '0']);
  106.             }
  107.         }////////////
  108.         else if (slice == 3)
  109.         {
  110.             if (len == 7)
  111.             {
  112.                 if (i == 0)
  113.                     printf(" %s %s", str1[number[i] - '0'], str3[len - 2]);
  114.                 else if (i == 1)
  115.                     printf(" %s %s", str1[number[i] - '0'],  str3[len -4]);
  116.                 else if (i == 2)
  117.                     printf(" %s %s", str2[number[i] - '0'], str3[len - 3]);
  118.                 else if (i == 3)
  119.                     printf(" %s %s", str1[number[i] - '0'], str3[len - 5]);
  120.                 else if (i == 4)
  121.                     printf(" %s %s", str1[number[i] - '0'], str3[len-4]);
  122.                 else if (i == 5)
  123.                     printf(" %s ", str2[number[i] - '0']);
  124.                 else
  125.                     printf("%s ",str1[number[i] - '0']);
  126.             }
  127.             else if (len == 8)
  128.             {
  129.                 if (i == 0)
  130.                     printf(" %s", str2[number[i] - '0']);
  131.                 else if (i == 1)
  132.                     printf(" %s %s", str1[number[i] - '0'],  str3[len -3]);
  133.                 else if (i == 2)
  134.                     printf(" %s %s", str1[number[i] - '0'], str3[len - 5]);
  135.                 else if (i == 3)
  136.                     printf(" %s", str1[number[i] - '0']);
  137.                 else if (i == 4)
  138.                     printf(" %s %s", str1[number[i] - '0'], str3[len-4]);
  139.                 else if (i == 5)
  140.                     printf(" %s %s", str1[number[i] - '0'], str3[len - 5]);
  141.                 else if (i == 6)
  142.                     printf(" %s",str2[number[i] - '0']);
  143.                 else
  144.                     printf(" %s ",str1[number[i] - '0']);
  145.             }////
  146.             else if (len == 9)
  147.             {
  148.                 if (i == 0)
  149.                     printf(" %s %s", str1[number[i] - '0'], str3[len - 6]);
  150.                 else if (i == 1)
  151.                     printf(" %s ", str2[number[i] - '0']);
  152.                 else if (i == 2)
  153.                     printf(" %s %s", str1[number[i] - '0'], str3[len - 4]);
  154.                 else if (i == 3)
  155.                     printf(" %s %s", str1[number[i] - '0'], number[i] - '0' ? str3[len -6]: "\0");
  156.                 else if (i == 4)
  157.                     printf(" %s ", str2[number[i] - '0']);
  158.                 else if (i == 5)
  159.                     printf(" %s %s", str1[number[i] - '0'], str3[len - 5]);
  160.                 else if (i == 6)
  161.                     printf(" %s %s",str1[number[i] - '0'], str3[len - 6]);
  162.                 else if (i == 7)
  163.                     printf(" %s ",str2[number[i] - '0']);
  164.                 else if (i == 8)
  165.                     printf(" %s ",str1[number[i] - '0']);
  166.             }
  167.         }
  168.         else if (slice == 4)
  169.         {
  170.             if (len == 10)
  171.             {
  172.                 if (i == 0)
  173.                     printf(" %s %s", str1[number[i] - '0'], str3[len - 4]);
  174.                 if (i == 1)
  175.                     printf(" %s %s", str1[number[i] - '0'], str3[len - 7]);
  176.                 else if (i == 2)
  177.                     printf(" %s ", str2[number[i] - '0']);
  178.                 else if (i == 3)
  179.                     printf(" %s %s", str1[number[i] - '0'], str3[len - 5]);
  180.                 else if (i == 4)
  181.                     printf(" %s %s", str1[number[i] - '0'], number[i] - '0' ? str3[len -7]: "\0");
  182.                 else if (i == 5)
  183.                     printf(" %s ", str2[number[i] - '0']);
  184.                 else if (i == 6)
  185.                     printf(" %s %s", str1[number[i] - '0'],str3[len - 6]);
  186.                 else if (i == 7)
  187.                     printf(" %s %s",str1[number[i] - '0'], str3[len - 7]);
  188.                 else if (i == 8)
  189.                     printf(" %s ",str2[number[i] - '0']);
  190.                 else if (i == 9)
  191.                     printf(" %s ",str1[number[i] - '0']);
  192.             }
  193.         }
  194.     }
  195.     printf("\n---------------------------------------------------------\n");
  196. }
  197.  
  198. int             main(int argc, char **argv)
  199. {
  200.     int         i;
  201.     printf("\n---------WRITTEN IN C-LANGUAGE-------------------");
  202.     printf("\n---------J'ECRIS EN LETTRE JUSQU'AU MILLIARD------------------- \n");
  203.     if(argc > 1)
  204.     {
  205.         i = 1;
  206.         while(argv[i])
  207.         {
  208.             helper(atoi(argv[i++]));
  209.         }
  210.     }
  211.     return(0);
  212. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement