daily pastebin goal
58%
SHARE
TWEET

Number to char.

a guest Feb 13th, 2018 62 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. void enterChar(char*,char const*);
  5. int lengthChar(char*);
  6. void convertChar(char*, int const);
  7.  
  8. int main(int argc, const char * argv[]) {
  9.     char num[15] = "";
  10.     enterChar(num, "Введите целое число, не превышающее миллиард: ");
  11.     int const len = lengthChar(num);
  12.     cout << len << endl;
  13.     convertChar(num, len);
  14.     return 0;
  15. }
  16.  
  17. void enterChar(char* num,char const* str) {
  18.     char const* msg = "Повторите ввод: ";
  19.     cout << str << flush;
  20.     cin >> num;
  21.     for(int i=0;i<sizeof(num);i++) {
  22.         if((num[12]!='\0'&&num[12]>'0')||num[13]!='\0') {
  23.             cout << "Значение не должно превышать миллиард.\n" << msg << flush;
  24.             i=0;
  25.             cin.clear();
  26.             cin >> num;
  27.         }
  28.         else if(isdigit(num[i])!=true&&num[i]!='\0') {
  29.             cout << "Некорректный ввод, введенное значение не является целым числом.\n" << msg << flush;
  30.             cin.clear();
  31.             cin >> num;
  32.         }
  33.     }
  34. }
  35.  
  36. int lengthChar(char* num) {
  37.     int i;
  38.     for(i=0;num[i]!='\0';i++) {}
  39.     return i;
  40. }
  41.  
  42. void convertChar(char* num, int const len) {
  43. //    int digNum = atoi(num);
  44.     int a=0,
  45.         b=0,
  46.         c=0;
  47.     int word;
  48.     char const* numbers[] = {"", "од", "дв", "три", "четыр", "пят", "шесть", "семь", "восемь", "девять"};
  49.     char const* digits[] = {"", "дцать", "десять", "двести", "сорок", "девяносто", "ст", "сот", "тысяч", "миллион", "миллиард"};
  50.     char const* ends[] = {"", "ин", "о", "а", "сот", "ов", "ач", "и", "е", "на", "ь"};
  51.    
  52.     char strnum[20][20];
  53.  
  54.     for(int i=0;i<len;i++) {
  55.         if(len-i==12)
  56.             *strnum[20-i] = numbers[1] + ends[1] + digits[10] + ends[0] + numbers[0] + digits[4] + numbers[3] + ends[0] + digits[2] + numbers[3] + ends[4];
  57.     }
  58. }
RAW Paste Data
Top