Отредактировать текст, удалив из него слова, которые уже встречались в предложении ранее - C (СИ)
Формулировка задачи:
В консоли ввести текст с повторяющимися словами.
Отредактировать заданный текст, удалив из него слова, которые уже встречались в предложении ранее.
Написала только..Вводим строку и выводим её..дальше ступор
#include "stdafx.h"
#include <stdio.h>
#include <locale.h>
#include <string.h>
int main(int argc, char *argv[])
{
setlocale(LC_ALL, "Russian");
char str[256];
printf("Введите строку: "); gets_s(str);
puts(str);
_gettch();
return 0;
}
Есть код, но он нерабочий.. http://forum.codenet.ru/q16786/
как исправить? Помогите, пожалуйста!
Решение задачи: «Отредактировать текст, удалив из него слова, которые уже встречались в предложении ранее»
textual
Листинг программы
#include <stdio.h>
#include <string.h>
int main(void)
{
char buf[BUFSIZ];
char buf_[BUFSIZ];
while (printf("String: ") && fgets(buf, BUFSIZ, stdin) && *buf!='\n') {
printf("Result string: ");
strcpy(buf_, buf);
for (char* ptr = strtok(buf, DELIM); ptr; ptr = strtok(NULL, DELIM))
if ((buf_- strstr(buf_, ptr)) == (buf - ptr)) printf("%s ", ptr);
putchar('\n');
}
return 0;
}
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы с файлами и строками
- Объявление переменных: буфер для ввода пользователя, буфер для результата, указатель на первый символ в строке
- Вход в цикл, который будет выполняться до тех пор, пока пользователь вводит строку и нажимает Enter
- Очистка предыдущего результата
- Разделение исходной строки на слова и удаление из нее уже встречающихся слов
- Вывод результата на экран
- Выход из программы при достижении условия окончания работы