Таки ж прекрасно! Вы знаете всё, что вам нужно для решения вашей задачи.
Во-первых, вам надо предусмотреть случай отсутствия вообще подстроки в вашей строке. Насколько могу судить, в этом случае ваша программа всё равно выполнит strcpy, только вот buf будет нулевым. Это либо вызовет крах программы из-за попытки доступа к нулевому адресу, либо, если strcpy нынче умная, нет — но в любом случае некошерно.
Во-вторых, вам надо написать цикл — нашли подстроку, запомнили адрес, ищем дальше, и так пока в остатке не будет подстроки. Тогда запомненный адрес будет тем, что нам нужен.
Получается цикл выглядит так?
Код:
buf = strstr(s1, s2);
for (i=0; i<strlen(s2); i++)
for (j = 0; j < strlen(s1); j++)
buf[j] = buf[j+1];