Ввести строку и букву, вывести только слова, заканчивающиеся на заданную букву - 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(); }
Объяснение кода листинга программы
В этом коде:
- Объявлены две строки: str1 и str2.
- В str1 содержится строка
light emission computer sound distortion crash destruction
. - В ch содержится буква 'n'.
- В цикле for происходит проход по всем символам строки str1.
- Внутри цикла проверяется, является ли текущий символ пробелом и равен ли предыдущему символу переменной ch. Если это так, то текущий символ добавляется в новую строку str2.
- Если текущий символ равен переменной ch и следующий символ является концом строки, то с предыдущего символа начинается новая строка, которую добавляют в str2.
- В конце программы выводится на экран строка str2.
- В конце программы ожидается нажатие клавиши. Так работает этот код.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д