Другие языки программирования и технологии

Есть вопрос по программированию в СИ

Уважаемые пользователи, помогите, пожалуйста, очень буду благодарна.
Дано предложение, заканчивающееся точкой. Напечатать все слова отличные от слова hello.
Заранее огромное спасибо :)
Artem Shulgin
Artem Shulgin
264
Уважаемая Екатерина, очень хотелось бы увидеть Вашу попытку решения, узнать, что у Вас не получилось, какие возникли трудности в процессе выполнения задания. Будем очень благодарны и с удовольствием укажем на ошибки.

> можно сделать автомат на комбинацию символов пробел hello пробел/точка
> стартовое состояние автомата должно быть пробел - если hello в начале строки
> получится автомат на 8 состояний

Стюардесса в салоне нового супер лайнера объявляет о том, что находится в самолете:
- На первой палубе - багаж, на второй - бар, на третьей - поле для гольфа, на четвертой бассейн.
И добавляет:
- А теперь, господа, пристегнитесь. Сейчас со всей этой херней мы попробуем взлететь.

#include <stdio.h>
#include <string.h>

int main() {
char s[128], *t, d[] = " \t,;", *dot;
printf("предложение? ");
fgets(s, 128, stdin);
if ( (dot = strstr(s, ".")) == 0 ) {
puts("ошибка: предложение должно оканчиватся точкой");
return 0;
}
*dot = '\0';
puts("");

t = strtok(s, d);
while (t) {
if ( strcmp(t, "hello") != 0 ) printf("%s\n", t);
t = strtok(NULL, d);
}
return 0;
}
Yelena Batova
Yelena Batova
74 705
Лучший ответ
можно сделать автомат на комбинацию символов пробел hello пробел/точка
стартовое состояние автомата должно быть пробел - если hello в начале строки
получится автомат на 8 состояний

про поиск автоматами подстроки в строке можно почитать в сети
спасибо ра
Teimyraz Sidamonidze
Teimyraz Sidamonidze
194