Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //К номеру своего варианта прибавить 1 и написать программу с использованием динамических массивов для условий из лабораторной работы № 12.
- //Внести изменения в программу с тем, чтобы продемонстрировать использование указателей как формальных параметров функции и как результатов выполнения функции.
- //В строке есть символы *. Преобразовать строку следующим образом: удалить все символы *, и повторить каждый символ, отличный от *.
- #include <iostream>
- #include <string>
- using namespace std;
- char *foo(char *a, int n, int kon)
- {
- for (int i = n; i < kon - 1; i++)
- {
- *(a + i) = *(a + i + 1);
- }
- return a;
- }
- char *bar(char *a, int kon)
- {
- for (int i = kon-1; i > 0; i--)
- {
- a[2 * i] = a[i];
- }
- for (int i = 0; i < 2 * kon; i = i + 2)
- a[i + 1] = a[i];
- return a;
- }
- int main()
- {
- string s;
- cin >> s;
- int len = s.length();
- char *a = new char[len];
- for (int i = 0; i < len; i++) *(a + i) = s[i];
- int k = 0;
- for (int i = 0; i < len - k; i++)
- {
- while (*(a + i) == '*')
- {
- if (i == len - k - 1) { k++; break; }
- a = foo(a, i, len - k);
- k++;
- }
- }
- char *a2 = new char[2 * len - 2 * k];
- for (int i = 0; i < len - k; i++) a2[i] = a[i];
- a2 = bar(a2, len - k);
- for (int i = 0; i < (2 * len - 2 * k); i++)
- cout << *(a2 + i);
- system("pause");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement