Advertisement
VictoriaLodochkina

lab 3 z1 2 var fix

Feb 24th, 2020
182
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.58 KB | None | 0 0
  1. #include <iostream>
  2. #include <string.h>
  3. #include <stdlib.h>
  4. using namespace std;
  5. int main()
  6. {
  7.     char* str1 = new char[12];
  8.     char* str2 = new char[10];
  9.     char* temp1 = new char[20];
  10.     char* symbol = new char;
  11.     int n;
  12.     cout << "Enter str1: " << endl;
  13.     cin >> str1;
  14.     cout << "Enter str2: " << endl;
  15.     cin >> str2;
  16.     cout << "Enter symbol: " << endl;
  17.     cin >> symbol;
  18.     cout << "Enter n: " << endl;
  19.     cin >> n;
  20.     str2 = _strrev(str2);
  21.     str2 = strtok(str2, symbol);//берем из реверсной строки подстроку до символа без него
  22.     str2 = _strrev(str2);//обратно
  23.     int b = strlen(str2);
  24.     if (b >= n)
  25.     {
  26.         b = n+1;//количество символов из строки 2,на которое мы заменяем
  27.     }
  28.     char* temp2 = new char[20];
  29.     *temp2 = 0;
  30.     strcpy(temp2, str1);
  31.     temp1 = _strrev(temp2);
  32.     temp1 = strstr(temp1, symbol);
  33.     temp1 = _strrev(temp1); //здесь строка уже прямая с символом на конце*/
  34.     int i = strlen(str1) - strlen(temp1)-b;//находим, сколько символов дописать в конце
  35.     strcat(temp1, str2);//соединяем
  36.     //cout << i << endl;
  37.     if (strlen(temp1) < strlen(str1))
  38.     {
  39.         *str2 = 0;//очищаем буфер
  40.         *temp2 = 0;
  41.         temp2 = _strrev(str1);//переворачиваем, чтобы взять символы с конца
  42.         strncat(str2, temp2, i);//берем символы с конца
  43.         str2 = _strrev(str2);//реверс
  44.         strncat(temp1, str2, i);//соединяем воедино
  45.     }
  46.     printf("%s", temp1);
  47.     return 0;
  48. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement