Если указанная буква есть в предложении - все слова с ней удалить и вывести оставшиеся - C (СИ)
Формулировка задачи:
Решение задачи: «Если указанная буква есть в предложении - все слова с ней удалить и вывести оставшиеся»
#include <stdio.h>
#include <conio.h>
#include <windows.h>
#include <ctype.h>
#include <string.h>
int main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
printf("Введите строку\n");
char line[100];
gets(line);
char bukva;
printf("Введите букву\n");
scanf("%c",&bukva);
printf("Это буква: %c\n",bukva);
const char*roz="+- /*,.:;";
char * qw;
qw=strtok(line,roz);
strchr(qw,bukva); //надо тут что-то намутить, возможно, if (...)!=NULL ... и потом копирнуть
while(qw!=NULL){
printf("%s ",qw);
qw=strtok(NULL,roz);
}
getch();
Объяснение кода листинга программы
В этом коде считывается строка и буква с помощью функций gets и scanf.
Переменная bukva содержит введенную букву.
Переменная roz содержит строку, в которой заданы разделители.
Переменная qw указывает на первое слово в строке.
Функция strtok разбивает строку на слова, используя разделители из строки roz.
Функция strchr ищет в слове введенную букву.
В цикле, пока qw не равно NULL, выводится слово, затем qw обновляется на следующее слово в строке.
В конце программы используется функция getch для получения ввода пользователя и завершения программы.
Возможно, в коде предполагалось добавить проверку if (strchr(qw,bukva) != NULL), чтобы проверить, содержит ли слово введенную букву, и, если да, удалить его. Но в текущем коде эта проверка не выполняется.