Выбрать из заданного текстового файла все слова, содержащие заданный символ и вывести на экран - C (СИ)
Формулировка задачи:
Если не сложно помогите с задачей. Может быть код у кого-нибудь уже есть, задача то простая..
Выбрать из заданного текста(из текстового файла) все слова, содержащие заданный символ и вывести на экран.
Решение задачи: «Выбрать из заданного текстового файла все слова, содержащие заданный символ и вывести на экран»
textual
Листинг программы
#include <stdio.h>
#include <string.h>
int main() {
char text[]="okey lets dad fucf osly fox lol ogro opl";
char* t;
char e='f';
size_t i;
printf("Text:\n%s\n\n", text);
t=strtok(text, " ");
while (t != NULL) {
for(i=0; i<strlen(t); i++) {
if(t[i] == e) {
printf("Slovo - %s\n", t);
break;
}
}
t = strtok (NULL, " ");
}
return 0;
}
Объяснение кода листинга программы
В этом коде:
- Объявлены три переменные: text, t и e.
- Переменная text содержит строку
okey lets dad fucf osly fox lol ogro opl. - Переменная t инициализируется значением text.
- Переменная e содержит символ 'f'.
- Далее идет цикл while, который выполняется до тех пор, пока t не станет равным NULL.
- Внутри цикла while, в каждой итерации, переменная t содержит следующее слово из строки text.
- Далее идет вложенный цикл for, который проходит по каждому символу текущего слова.
- Если текущий символ равен e, то слово выводится на экран.
- После вывода слова, переменная t становится равной NULL, что завершает внутренний цикл while.
- После завершения внутреннего цикла while, переменная t инициализируется новым значением, полученным из функции strtok(NULL,
). - Функция strtok(NULL,
) возвращает следующее слово из строки, разделенной пробелами. - Если слово не найдено, то t становится равным NULL.
- Цикл while продолжается до тех пор, пока не будет найдено новое слово.
- В конце программы возвращается 0, что означает успешное выполнение программы.