Написать программу, которая во вводимом с клавиатуры тексте выберет слова, начинающиеся с гласной буквы - C (СИ)
Формулировка задачи:
Как сделать так, чтоб проверял только первый символ? в новом слове. То если гласная где то в середине, то он начиная с гласной пишет огрызок слова =\
int main() { int i=0; int x=0; char D[]="eEyYuUiIoOaA"; char str[100]; puts("vod: "); gets(str); while (str[i] != '\0') { for(x = 0; D[x] !='\0';++x) { if (str[i] == D[x] ) { while (str[i] != ' ' && str[i] != '\0') { printf("%c", str[i]); i++; } printf("\n"); } } if (str[i] != '\0') { i++; } } getch(); return 0; }
Решение задачи: «Написать программу, которая во вводимом с клавиатуры тексте выберет слова, начинающиеся с гласной буквы»
textual
Листинг программы
#include <stdio.h> #include <string.h> #define N 256 #define DELIM " \n\t,.;:?!" int main() { int i; char D[]="eEyYuUiIoOaA"; char str[N], *p; puts("Enter line:"); fgets(str, N, stdin); for(p = strtok(str, DELIM); p; p = strtok(NULL, DELIM)){ for(i = 0; D[i]; i++){ if (*p == D[i] ){ puts(p); break; } } } return 0; }
Объяснение кода листинга программы
В этом коде:
- #include
Включается файл стандартного ввода/вывода, который содержит функции для работы с консолью. - #include
Включается файл string.h, который содержит функции для работы со строками. - #define N 256 Определяется размер массива строк.
- #define DELIM
\n\t,.;:?!
Определяется разделитель, который используется для разделения строки на слова. - int main() Определяется функция main(), которая является точкой входа в программу.
- int i; Объявляется переменная i, которая будет использоваться для цикла.
- char D[]=
eEyYuUiIoOaA
; Объявляется массив D, который содержит гласные буквы. - *char str[N], p;** Объявляются переменные str и p.
- str[N] Это массив, который будет использоваться для хранения введенной строки.
- p Это указатель, который будет использоваться для перемещения по строке.
- puts(
Enter line:
); Выводится приглашение для ввода строки. - fgets(str, N, stdin); Вводится строка с помощью функции fgets().
- for(p = strtok(str, DELIM); p; p = strtok(NULL, DELIM)){ Начинается цикл, который будет перебирать все слова в строке.
- for(i = 0; D[i]; i++){ Начинается внутренний цикл, который будет проверять каждое слово на наличие гласной буквы.
- *if (p == D[i] ){** Если текущая буква в слове совпадает с гласной, то выводится слово.
- puts(p); Выводится слово.
- break; Цикл прерывается, если найдено гласное слово.
- } Конец внутреннего цикла.
- } Конец внешнего цикла.
- return 0; Завершается функция main(). Список выделенных переменных и их значений:
- i - переменная для цикла, не имеет начального значения.
- D[] - массив гласных букв, содержит
eEyYuUiIoOaA
. - str - массив для хранения введенной строки, содержит введенную строку.
- p - указатель для перемещения по строке, указывает на текущий символ в строке.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д