Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- using namespace std;
- 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"};
- string num[20] = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19"};
- void RewriteNumbers(string &src) {
- src += ' ';
- int s = src.size(), i;
- string t = "", new_str = "";
- int flag = 0;
- for (i = 0; i < s; i++) {
- if (src[i] != ' ') {
- t += src[i];
- }
- else
- {
- for (int j = 0; j < 28; j++) {
- if (t == txt[j]) {
- if (j >= 20) {
- new_str += num[j - 18];
- flag = 1;
- }
- else
- {
- new_str += num[j];
- flag = 0;
- }
- t = "";
- break;
- }
- }
- if (flag == 2) {
- new_str += "0 ";
- flag = 0;
- }
- if (flag != 1) new_str += t + " ";
- t = "";
- if (flag == 1) flag++;
- }
- }
- if (flag == 2)
- {
- new_str += "0";
- flag = 0;
- };
- std::cout << new_str << std::endl;
- }
- void NumbersToBinary(string &src) {
- int s = src.size(), i, k = 0;
- string t = "", new_str = "", d = "0123456789";
- bool flag = false;
- for (i = 0; i < s; i++) {
- for (int j = 0; j < 10; j++){
- if (src[i] == d[j]) {
- k = k*10 + j;
- flag = true;
- if ((i == s - 1) || (src[i + 1] == ' ')) {
- while (k) {
- if (k % 2) t = "1" + t;
- else t = "0" + t;
- k /= 2;
- }
- new_str += t;
- t = "";
- }
- }
- }
- if (!flag) new_str += src[i];
- else flag = false;
- }
- cout << new_str << endl;
- }
- int main () {
- string a;
- getline(cin, a);
- NumbersToBinary(a);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement