Advertisement
Guest User

Untitled

a guest
Mar 31st, 2020
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.65 KB | None | 0 0
  1. // Имеется массив строк. На том же месте, не заводя других массивов,
  2. // записать слова в обратном порядке, рассматривая все строки,
  3. // т.е. первое слово первой строки станет последним словом последней строки
  4. // (если объединить строки, будет гораздо проще).
  5. // Стандартных функций работы со строками не использовать
  6.  
  7. #include <iostream>
  8. #include <conio.h>
  9. // #include <string>
  10. using namespace std;
  11.  
  12. int Mystrlen(char *F);
  13. char* Mystrcpy(char* B2, char* strf);
  14.  
  15. int main() {
  16. system("chcp 1251");
  17. system("cls");
  18.  
  19. // Массив указателей на строки
  20. cout << "Ввод текста: \n" << endl;
  21. char* B[5];
  22. for (int i = 0; i < 5; i++) {
  23. B[i] = new char[80];
  24. }
  25.  
  26. char str1[80];
  27. cout << "Ведите 1-ю строку: ";
  28. gets(str1); // cin >> str1;
  29.  
  30. char str2[80];
  31. cout << "Ведите 2-ю строку: ";
  32. gets(str2); // cin >> str2;
  33.  
  34. char str3[80];
  35. cout << "Ведите 3-ю строку: ";
  36. gets(str3); // cin >> str3;
  37.  
  38. char str4[80];
  39. cout << "Ведите 4-ю строку: ";
  40. gets(str4); // cin >> str4;
  41.  
  42. char str5[80];
  43. cout << "Ведите 5-ю строку: ";
  44. gets(str5); // cin >> str5;
  45. cout << endl;
  46.  
  47. Mystrcpy(B[0], str1);
  48. Mystrcpy(B[1], str2);
  49. Mystrcpy(B[2], str3);
  50. Mystrcpy(B[3], str4);
  51. Mystrcpy(B[4], str5);
  52.  
  53. char* temp = B[0];
  54. B[0] = B[4];
  55. B[4] = temp;
  56. char* temp1 = B[1];
  57. B[1] = B[3];
  58. B[3] = temp1;
  59.  
  60. cout << "Результат: \n";
  61.  
  62. for (int i = 0; i < 5; i++) {
  63.  
  64. int k = -1;
  65.  
  66. for (int j = 1; j < Mystrlen(B[i]); j++) {
  67.  
  68. if (B[i][j] == ' ' || j == Mystrlen(B[i]) - 1) {
  69. k++;
  70. int z = 0;
  71. int length;
  72. if (B[i][j] == ' ')
  73. length = j - k;
  74. if (j == Mystrlen(B[i]) - 1)
  75. length = j - k + 1;
  76.  
  77. int what;
  78. if (length % 2 == 1)
  79. what = length / 2;
  80. else
  81. what = length / 2 - 1;
  82.  
  83. for (z = 0; z <= what; z++) {
  84. char temp;
  85. temp = B[i][k + z];
  86. B[i][k + z] = B[i][k - z + length - 1];
  87. B[i][k - z + length - 1] = temp;
  88. }
  89. k = j;
  90. }
  91. }
  92. }
  93.  
  94. cout << endl;
  95. for (int h = 0; h < 5; h++) {
  96.  
  97. for (int x = 1; x <= Mystrlen(B[h]); x++) {
  98. cout << B[h][Mystrlen(B[h]) - x];
  99. }
  100. cout << endl;
  101. }
  102. getch();
  103. return 0;
  104. }
  105.  
  106. int Mystrlen(char *F) {
  107. int res = 0, w = 0;
  108. while (F[w] != '\0') {
  109. res++;
  110. w++;
  111. }
  112. return res;
  113. }
  114.  
  115. char* Mystrcpy(char* B2, char* strf) {
  116. while (*B2++ = *strf++);
  117. return B2;
  118. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement