Если указанная буква есть в предложении - все слова с ней удалить и вывести оставшиеся - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Добрые день. Наткнулся на задачки, суть которых такова: С клавиатуры вводится предложение 1) если указанная буква есть в предложении - все слова с ней удалить и вывести оставшиеся; 2) и наоборот: если буква встречается в слове - вывести лишь слова, в которых эта буква есть. Идейки как это делать имеются, но очень хотелось бы, чтобы Вы показали мне это на примере. Заранее благодарен.

Решение задачи: «Если указанная буква есть в предложении - все слова с ней удалить и вывести оставшиеся»

textual
Листинг программы
#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), чтобы проверить, содержит ли слово введенную букву, и, если да, удалить его. Но в текущем коде эта проверка не выполняется.

Оцени полезность:

6   голосов , оценка 3.667 из 5
Похожие ответы