Advertisement
JewishCat

25v.Stroki

May 24th, 2016
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.24 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstring>
  3.  
  4. using namespace std;
  5. void Remove(char *str, char *psubstr)
  6. {
  7.  
  8.     char    *p = 0, *p1 = 0;
  9.     size_t size = strlen(psubstr);//определили длину нашей подстроки
  10.     for (; p = strstr(str, psubstr); ) //strstr - это функция поиска первого вхождения подстроки в строку. Она возращает указатель на место, где это подстрока находится
  11.                                        //for - здесь дано только условие, когда оно вернет нулевой указатель, цикл прекратится
  12.     {
  13.         p1 = p + size; //запоминаем смещенный указатель(то есть теперь у нас указатель на конец вхождения подстроки указывает)
  14.         while (*p++ = *p1++);//смещая указатели, мы перезаписываем строку, то есть на место подстроки перезаписывается дальше строка
  15.     }
  16. }
  17. int main() {
  18.     char str[] = { "string strin stri strng" },
  19.         *psubstr = (char*)"str";
  20.     Remove(str, psubstr);
  21.     cout << str << endl;
  22.     system("pause");
  23.     return 0;
  24. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement