В произвольном тексте найти и отпечатать слова, содержащие букву i, но не содержащие букву m - C (СИ)
Формулировка задачи:
#include <stdio.h> #include <string.h> int main() { char str[50]; char* t; printf("\nVvedite stroku:\n"); gets(str); t=strtok(str,"!?. ,"); while (t != NULL) { if(t[strlen(t)]=='i'&&t[strlen(t)]!='m') { printf("\nSlovo: %s",t); } t = strtok (NULL," ,"); } } /*ГЄГ®Г*ГҐГ¶ ГІГҐГ«Г* ïðîãðГ*ììû*/
Решение задачи: «В произвольном тексте найти и отпечатать слова, содержащие букву i, но не содержащие букву m»
textual
Листинг программы
#include <stdio.h> #include <string.h> main() { char str[1024]; char* k; printf("Text:\n"); printf("\n"); gets(str); k=strtok(str,"!?. ,"); while(k!='\0') { if(strchr(k,'i')&&!strchr(k,'m')) printf("\nSlovo: %s",k); k=strtok('\0'," ,"); } } /*конец тела программы*/
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы для работы с памятью и строками.
- Определяем точку входа в программу.
- Объявляем буфер для хранения входной строки.
- Объявляем указатель на начало подстроки, которую будем искать.
- Выводим приглашение для ввода текста.
- Считываем строку с помощью функции gets().
- Используем функцию strtok() для разделения входной строки на подстроки по заданным разделителям.
- В цикле while получаем каждую подстроку и проверяем условие: содержит ли она букву 'i' и не содержит ли букву 'm'.
- Если условие выполняется, выводим найденное слово.
- Повторяем поиск следующей подстроки, пока не будет найден ноль-терминатор.
- Завершаем программу.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д