Advertisement
Guest User

Untitled

a guest
Nov 17th, 2018
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.19 KB | None | 0 0
  1.  
  2. class money
  3. {
  4. static const int MAX=30;
  5. long double cash;
  6. char ustring[MAX];
  7. char out[MAX];
  8. public:
  9. money(){cash=0.0; out[0]='$';}//конструктор, который добавляет в массив out символ '$' нулевым индексом
  10. void ldtoms()
  11. {
  12. setlocale(LC_ALL,"");
  13. cout <<"Введите число: "; cin >>cash;
  14. _gcvt_s(ustring, MAX, cash, 16);//КРИВОЕ! преобразование в массив: заместо десятичной точки выводит запятую
  15. cout <<"Массив ustring[]: " <<ustring <<endl;
  16. int i=strlen(ustring);
  17. int g;//индекс символа запятой
  18. int z=0;//счетчик поставленных запятых
  19. int t=0;//счетчик символов между запятыми
  20. for(int v=0; v<i; v++){//цикл нахождения индекса запятой
  21. if(ustring[v]==','){
  22. g=v-1;
  23. break;
  24. }else{
  25. g=v;//не требуется
  26. }
  27. }
  28. for(int j=MAX; (j-z)>0; j--){//цикл заполнения массива out[] начиная с последнего индекса с поправкой на z-количество добавленных запятых
  29. if(i>=0){//замена запятой после формулы на точку
  30. if(i==g+1){
  31. out[j-z]='.';
  32. i--;
  33. continue;
  34. }
  35. out[j-z]=ustring[i];//копированеи элементов массива
  36. }else{//если закончилось копирование символов в out[] из ustring[]
  37. for(int jj=0; jj<=(strlen(ustring)+z); jj++){//цикл перемещения символов в массиве к началу
  38. int temp;
  39. temp=out[j-z+jj];
  40. out[j-z+jj]=out[j-z+jj+1];
  41. out[j-z+jj+1]=temp;
  42. }
  43. continue;
  44. }
  45. if(i<=g){//если достигли индекса расположения запятой или дальше
  46. ++t;//счетчик символов после запятой +1
  47. if((t==3)&&(i>0)){//если прошло три символа, пора ставить запятую
  48. ++z;//поставленых запятых +1
  49. out[j-z]=',';//ставим запятую
  50. t=0;//обнуляем счетчик символов
  51. }
  52. }
  53. i--;
  54. }
  55. out[strlen(ustring)+1+z]='\0';//постановка после цикла перемещения символов символа окончания строки(z-количество добавленных запятых, +1-учет символа '$')
  56. cout <<"Массив out[]: " <<out <<endl;
  57. }
  58. };
  59.  
  60. int _tmain(int argc, _TCHAR* argv[])
  61. {
  62. money m;
  63. m.ldtoms();
  64. system("pause");
  65. return 0;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement