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

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

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

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

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

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <conio.h>
  3. #include <windows.h>
  4. #include <ctype.h>
  5. #include <string.h>
  6. int main()
  7. {
  8.     SetConsoleCP(1251);
  9.     SetConsoleOutputCP(1251);
  10.     printf("Введите строку\n");
  11.     char line[100];
  12.     gets(line);
  13.     char bukva;
  14.     printf("Введите букву\n");
  15.     scanf("%c",&bukva);
  16.     printf("Это буква: %c\n",bukva);
  17.     const char*roz="+- /*,.:;";
  18.     char * qw;
  19.     qw=strtok(line,roz);
  20.     strchr(qw,bukva); //надо тут что-то намутить, возможно, if (...)!=NULL ... и потом копирнуть
  21.     while(qw!=NULL){
  22.         printf("%s ",qw);
  23.         qw=strtok(NULL,roz);
  24.     }
  25.    
  26.     getch();

Объяснение кода листинга программы

В этом коде считывается строка и буква с помощью функций gets и scanf. Переменная bukva содержит введенную букву. Переменная roz содержит строку, в которой заданы разделители. Переменная qw указывает на первое слово в строке. Функция strtok разбивает строку на слова, используя разделители из строки roz. Функция strchr ищет в слове введенную букву. В цикле, пока qw не равно NULL, выводится слово, затем qw обновляется на следующее слово в строке. В конце программы используется функция getch для получения ввода пользователя и завершения программы. Возможно, в коде предполагалось добавить проверку if (strchr(qw,bukva) != NULL), чтобы проверить, содержит ли слово введенную букву, и, если да, удалить его. Но в текущем коде эта проверка не выполняется.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

6   голосов , оценка 3.667 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы