Ввести строку и букву, вывести только слова, заканчивающиеся на заданную букву - C (СИ)

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

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

Помогите пожалуйста написать программу, нужно ввести строку и букву, вывести только слова, заканчивающиеся на заданную букву.

Решение задачи: «Ввести строку и букву, вывести только слова, заканчивающиеся на заданную букву»

textual
Листинг программы
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <ctype.h>
 
int main()
{
    static char str1[256] = "light emission computer sound distortion crash destruction"; char ch = 'n';
 
    char* str2 = new char[256];
    memset((void*)str2, 0x00, 256);
 
    printf("%s\n",str1);
 
    for (int i = 0; str1[i] != '\0'; i++)
        if ((isspace(str1[i]) && str1[i-1] == ch) || 
            (str1[i] == ch && str1[i+1] == '\0'))
        {
            int k = i-1; char temp[256] = "\0";
            while (!isspace(str1[k]) && k >= 0) k--;
 
            int n = 0, q = k+1;
            while (q <= i) temp[n++] = str1[q++];
 
            strcat(str2, temp);
        }
 
    printf("%s\n",str2);
 
    _getch();
}

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

В этом коде:

  1. Объявлены две строки: str1 и str2.
  2. В str1 содержится строка light emission computer sound distortion crash destruction.
  3. В ch содержится буква 'n'.
  4. В цикле for происходит проход по всем символам строки str1.
  5. Внутри цикла проверяется, является ли текущий символ пробелом и равен ли предыдущему символу переменной ch. Если это так, то текущий символ добавляется в новую строку str2.
  6. Если текущий символ равен переменной ch и следующий символ является концом строки, то с предыдущего символа начинается новая строка, которую добавляют в str2.
  7. В конце программы выводится на экран строка str2.
  8. В конце программы ожидается нажатие клавиши. Так работает этот код.

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


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

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

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