Advertisement
Guest User

Untitled

a guest
Nov 29th, 2015
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.64 KB | None | 0 0
  1. //К номеру своего варианта прибавить 1 и написать программу с использованием динамических массивов для условий из лабораторной работы № 12.
  2. //Внести изменения в программу с тем, чтобы продемонстрировать использование указателей как формальных параметров функции и как результатов выполнения функции.
  3. //В строке есть символы *. Преобразовать строку следующим образом: удалить все символы *, и повторить каждый символ, отличный от *.
  4. #include <iostream>
  5. #include <string>
  6. using namespace std;
  7. char *foo(char *a, int n, int kon)
  8. {
  9. for (int i = n; i < kon - 1; i++)
  10. {
  11. *(a + i) = *(a + i + 1);
  12. }
  13. return a;
  14. }
  15. char *bar(char *a, int kon)
  16. {
  17. for (int i = kon-1; i > 0; i--)
  18. {
  19. a[2 * i] = a[i];
  20. }
  21. for (int i = 0; i < 2 * kon; i = i + 2)
  22. a[i + 1] = a[i];
  23. return a;
  24. }
  25. int main()
  26. {
  27. string s;
  28. cin >> s;
  29. int len = s.length();
  30. char *a = new char[len];
  31. for (int i = 0; i < len; i++) *(a + i) = s[i];
  32. int k = 0;
  33. for (int i = 0; i < len - k; i++)
  34. {
  35.  
  36. while (*(a + i) == '*')
  37. {
  38. if (i == len - k - 1) { k++; break; }
  39. a = foo(a, i, len - k);
  40. k++;
  41. }
  42.  
  43. }
  44.  
  45. char *a2 = new char[2 * len - 2 * k];
  46. for (int i = 0; i < len - k; i++) a2[i] = a[i];
  47. a2 = bar(a2, len - k);
  48. for (int i = 0; i < (2 * len - 2 * k); i++)
  49. cout << *(a2 + i);
  50. system("pause");
  51. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement