Advertisement
Guest User

Untitled

a guest
Dec 15th, 2019
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.88 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3. using namespace std;
  4.  
  5. string txt[28] = {"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen", "twenty", "thirty", "fourty", "fifty", "sixty", "seventy", "eighty", "ninety"};
  6. string num[20] = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19"};
  7.  
  8. void RewriteNumbers(string &src) {
  9.  
  10. src += ' ';
  11.  
  12. int s = src.size(), i;
  13. string t = "", new_str = "";
  14. int flag = 0;
  15.  
  16. for (i = 0; i < s; i++) {
  17.  
  18. if (src[i] != ' ') {
  19.  
  20. t += src[i];
  21. }
  22. else
  23. {
  24.  
  25. for (int j = 0; j < 28; j++) {
  26.  
  27. if (t == txt[j]) {
  28. if (j >= 20) {
  29. new_str += num[j - 18];
  30. flag = 1;
  31. }
  32. else
  33. {
  34. new_str += num[j];
  35. flag = 0;
  36. }
  37. t = "";
  38. break;
  39. }
  40. }
  41.  
  42. if (flag == 2) {
  43. new_str += "0 ";
  44. flag = 0;
  45. }
  46.  
  47. if (flag != 1) new_str += t + " ";
  48. t = "";
  49.  
  50. if (flag == 1) flag++;
  51. }
  52.  
  53. }
  54.  
  55. if (flag == 2)
  56. {
  57. new_str += "0";
  58. flag = 0;
  59. };
  60.  
  61. std::cout << new_str << std::endl;
  62. }
  63.  
  64. void NumbersToBinary(string &src) {
  65.  
  66. int s = src.size(), i, k = 0;
  67. string t = "", new_str = "", d = "0123456789";
  68. bool flag = false;
  69.  
  70. for (i = 0; i < s; i++) {
  71.  
  72. for (int j = 0; j < 10; j++){
  73.  
  74. if (src[i] == d[j]) {
  75. k = k*10 + j;
  76.  
  77. flag = true;
  78. if ((i == s - 1) || (src[i + 1] == ' ')) {
  79.  
  80. while (k) {
  81. if (k % 2) t = "1" + t;
  82. else t = "0" + t;
  83. k /= 2;
  84. }
  85.  
  86. new_str += t;
  87. t = "";
  88. }
  89. }
  90. }
  91. if (!flag) new_str += src[i];
  92. else flag = false;
  93. }
  94.  
  95. cout << new_str << endl;
  96. }
  97.  
  98.  
  99. int main () {
  100.  
  101. string a;
  102.  
  103. getline(cin, a);
  104.  
  105. NumbersToBinary(a);
  106.  
  107. return 0;
  108. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement