Advertisement
alexdmin

8.1

May 24th, 2021
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.24 KB | None | 0 0
  1. //Во введённом значении объекта - слова поменять местами каждую пару сосед -
  2. //ствующих символов, начиная с первой.Слово дополнить пробелом справа, если
  3. //в нем нечетное число символов.Сформировать новый объект - слово.
  4. #include<iostream>
  5. #include<string>
  6. using namespace std;
  7. const int n = 100;
  8. class slova {
  9. public:
  10.     int size;
  11.     char s[n] = "abc";
  12. public:
  13.     slova() {
  14.         size = 4;
  15.         s[1] = 'a';
  16.         s[2] = 'b';
  17.         s[3] = 'c';
  18.         s[4] = '\0';
  19.     }
  20.     slova(string slova) {
  21.         int o = slova.length(), i;
  22.         size = o;
  23.         for (i = 0; i < o; i++) {
  24.             s[i] = slova[i];
  25.         }
  26.     }
  27.     slova(int k, char l) {
  28.         int i;
  29.         size = k;
  30.         for (i = 0; i < k; i++) {
  31.             s[i] = l;
  32.         }
  33.         s[i] = '\0';
  34.     }
  35.     slova(int k, string slovo) {
  36.         int o, i, l;
  37.         o = slovo.length();
  38.         if (o < k) k = o;
  39.         size = 2 * k;
  40.         for (i = 0; i < k; i++) {
  41.             s[i] = slovo[i];
  42.         }
  43.         for (l = 0; l < k; l++) {
  44.             s[i + l] = slovo[o - k + l];
  45.         }
  46.         s[i + l] = '\0';
  47.     }
  48.     slova(const slova& slova) {
  49.         int i = 0;
  50.         for (i = 0;; i++) {
  51.             s[i] = slova.s[i];
  52.             if (s[i] == '\0') break;
  53.         }
  54.         size = i;
  55.     }
  56.     void vvod() {
  57.         int i;
  58.         cin >> s;
  59.         for (i = 0;; i++) {
  60.             if (s[i] == '\0') break;
  61.         }
  62.         size = i;
  63.     }
  64.     void vyvod() {
  65.         int i;
  66.         for (i = 0;; i++) {
  67.             if (s[i] == '\0') break;
  68.             cout << s[i];
  69.         }
  70.     }
  71. };
  72. int main()
  73. {
  74.     int x = 0, n, i;
  75.     char znak;
  76.     slova b;
  77.     slova blabla(3, 'l');
  78.     string str = "asfj";
  79.     setlocale(LC_ALL, "rus");
  80.     cout << "Введите 0-инициализация переменной словом 'abc'" << endl << "1-инициализация переменной строкой-инициализатором" << endl << "2-инициализация преременной n знаками";
  81.     cout << endl << "3-инициализация переменнной n первыми буквами введенной строки и n последними буквами сторки" << endl << "4-инициализация пременной при помощи конструктора копирования" << endl;
  82.     cout << "5-инициализация переменной введенной строкой" << endl;
  83.     cin >> x;
  84.     if (x == 0) {
  85.         slova a;
  86.         b = a;
  87.     }
  88.     else {
  89.         if (x == 1) {
  90.             cout << "Enter inizialisation string:" << endl;
  91.             slova a(str);
  92.             b = a;
  93.         }
  94.         else {
  95.             if (x == 2) {
  96.                 cout << "Enter znak:" << endl;
  97.                 cin >> znak;
  98.                 cout << "Enter kol-vo znakov:" << endl;
  99.                 cin >> n;
  100.                 slova a(n, znak);
  101.                 b = a;
  102.             }
  103.             else {
  104.                 if (x == 3) {
  105.                     cout << "Enter kol-vo znakov" << endl;
  106.                     cin >> n;
  107.                     cout << "Enter string:" << endl;
  108.                     cin >> str;
  109.                     slova a(n, str);
  110.                     b = a;
  111.                 }
  112.                 else {
  113.                     if (x == 4) {
  114.                         slova a(blabla);
  115.                         b = a;
  116.                     }
  117.                     else {
  118.                         if (x == 5) {
  119.                             slova a;
  120.                             cout << "Ente string" << endl;
  121.                             a.vvod();
  122.                             b = a;
  123.                         }
  124.                     }
  125.                 }
  126.             }
  127.         }
  128.     }
  129.     for (i = 0;; i += 2) {
  130.         if (b.s[i + 1] == '\0') {
  131.             b.s[i + 1] = ' ';
  132.             b.s[i + 2] = '\0';
  133.             break;
  134.         }
  135.         swap(b.s[i], b.s[i + 1]);
  136.     }
  137.     b.vyvod();
  138.     system("pause");
  139.     return 1;
  140. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement