Advertisement
dinophanhk

[C] Read Vietnamese Number

Jun 19th, 2014
201
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.25 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4.  
  5. void docHangSo(char soVao[],char ketQua[])
  6. {
  7.     int doDai = (int) strlen(soVao);
  8.     int viTri = 0;
  9.     char *danhSachSo[10] = {
  10.         " ","mot","hai","ba","bon","nam","sau","bay","tam","chin"
  11.     };
  12.    
  13.    
  14.     if (doDai == 3) {
  15.         if(soVao[0]=='0')
  16.             strcat(ketQua," khong tram ");
  17.         else
  18.         {
  19.             strcat(ketQua, danhSachSo[soVao[viTri]-48]);
  20.             strcat(ketQua," tram ");
  21.         }
  22.         --doDai;
  23.         ++viTri;
  24.     }
  25.    
  26.     if(doDai == 2) {
  27.         if (soVao[viTri]=='0') {
  28.             if (soVao[viTri + 1] != '0') {
  29.                 strcat(ketQua, " le ");
  30.             }
  31.         }
  32.         else if (soVao[viTri] == '1') {
  33.             strcat(ketQua, " muoi ");
  34.         }
  35.         else {
  36.             strcat(ketQua, danhSachSo[soVao[viTri] - 48]);
  37.             if (soVao[viTri + 1] != '0') {
  38.                 strcat(ketQua, " muoi ");
  39.             }
  40.         }
  41.         --doDai;
  42.         ++viTri;
  43.     }
  44.    
  45.     if (doDai == 1) {
  46.         if (soVao[viTri] == '1')
  47.             strcat(ketQua, " mot ");
  48.         else
  49.             strcat(ketQua, danhSachSo[soVao[viTri] - 48]);
  50.     }
  51. }
  52.  
  53. void docHet(char soVao[],char ketQua[])
  54. {
  55.     int doDai = (int) strlen(soVao);
  56.     int i, j, viTri = 0, donVi;
  57.     char *hangCao[4] = {
  58.         ""," ngan "," trieu "," ti "
  59.     };
  60.     char soTam[200];
  61.    
  62.     if (doDai % 3 == 0) {
  63.         donVi = doDai / 3 - 1;
  64.     }
  65.     else {
  66.         donVi = doDai / 3;
  67.     }
  68.    
  69.     if (doDai % 3 != 0) {
  70.         for(j = 0; j < doDai % 3; ++j) {
  71.             soTam[j] = soVao[viTri++];
  72.         }
  73.         soTam[j] = 0;
  74.         docHangSo(soTam, ketQua);
  75.         strcat(soTam, hangCao[donVi]);
  76.         --donVi;
  77.     }
  78.    
  79.     for(i=0; i < doDai / 3; ++i) {
  80.         for(j = 0; j < 3; ++j) {
  81.             soTam[j] = soVao[viTri++];
  82.         }
  83.         soTam[j] = 0;
  84.         docHangSo(soTam, ketQua);
  85.         strcat(ketQua, hangCao[donVi]);
  86.         --donVi;
  87.     }
  88. }
  89.  
  90. int main()
  91. {
  92.     char chuoi[255];
  93.     char result[255];
  94.     strcpy(result,"");
  95.     printf("Nhap vao so: ");
  96.     scanf("%s",chuoi);
  97.     docHet(chuoi,result);
  98.     result[0] = result[0] - 32;
  99.     printf("So ban vua nhap la: %s.\n", result);
  100. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement