Консультация № 188977
17.03.2016, 19:51
0.00 руб.
0 5 1
Здравствуйте, уважаемые эксперты! Прошу вас ответить на следующий вопрос:
Помогите, пожалуйста, нужно написать функцию, вот условие: даны строки S и S0. Удалить из строки S первую подстроку, совпадающую с S0.
Если совпадающих подстрок нет, то вывести строку S без изменений. Прототип функции char funcstr(char *s, char *s0)

Обсуждение

давно
Старший Модератор
312929
1973
18.03.2016, 03:44
общий
Адресаты:
А использовать строковые функции C (типа strstr, strcmp, strcpy и др.) можно?
давно
Посетитель
399292
22
18.03.2016, 06:03
общий
Адресаты:
Нет, не желательно
давно
Посетитель
7438
7205
18.03.2016, 12:02
общий
это ответ
Здравствуйте, YarLam125!
Например, так:
Код:

char* funcstr(char *s, char *s0)
{
int i, j;

for(i=j=0; s[i];)
{
if (s0[j]==0)
{
for(; s[i+j]; i++)
s[i] = s[i+j];
s[i] = 0;
break;
}
if (s[i+j] == s0[j])
j++;
else
{
j = 0;
i++;
}
}
return s;
}
5
Об авторе:
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен
давно
Посетитель
7438
7205
18.03.2016, 12:26
общий
Адресаты:
Чуток подправил
Об авторе:
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен
давно
Посетитель
399292
22
18.03.2016, 18:28
общий
Адресаты:
Огромное спасибо!
Форма ответа