Удалить подряд идущие вхождения слов в предложениях - C (СИ)
Формулировка задачи:
Дана строка, содержащая текст на русском языке. В предложениях некоторые из слов записаны подряд несколько раз (предложение заканчивается точкой или знаком восклицания). Получить в новой строке отредактированный текст, в котором удалены подряд идущие вхождения слов в предложениях.
Помогите, пожалуйста разобраться с задачкой, я что-то совсем запуталась, вот мой вариант, но работает неверно.
#include <stdio.h> #include <string.h> int main() { char str1[1024], *str, *str3; fgets (str1,1024,stdin); str=strtok(str1, " "); while (str){ str3=strtok(NULL, " "); if (*str!=*str3) printf ("%s ", str); str=strtok(NULL, " "); } return 0; }
Решение задачи: «Удалить подряд идущие вхождения слов в предложениях»
textual
Листинг программы
#include <stdio.h> #include <string.h> int main () { char str [300]; char newStr [300]; char sep [] = {' ', ',', '.'}; char * p = NULL; char * prev = NULL; newStr [0] = '\0'; gets (str); p = strtok (str, sep); prev = ""; while (p != NULL) { if (strcmp (prev, p) != 0) { strcat (newStr, p); strcat (newStr, " "); } prev = p; p = strtok (NULL, sep); } puts (newStr); p = prev = NULL; return 0; }
Объяснение кода листинга программы
Этот код на C удаляет повторяющиеся слова из предложений, вводимых пользователем. Вот список действий, которые происходят в коде:
- Вводится строка, содержащая предложение, с помощью функции gets().
- Создается пустая строка newStr, которая будет содержать предложение без повторяющихся слов.
- Создается пустой массив sep, содержащий символы, которые используются в качестве разделителей (пробел, запятая, точка).
- Инициализируется указатель p = NULL и prev = NULL.
- В цикле while с помощью функции strtok() происходит разбиение входной строки на отдельные слова и добавление их в newStr, если они не совпадают с предыдущим словом.
- После завершения цикла выводится итоговая строка newStr с помощью функции puts().
- Указатели p и prev обнуляются, и функция возвращает 0, что означает успешное завершение программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д