В заданном массиве строк найти все слова, содержащие заданное количество гласных букв, и вывести их - C (СИ)

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

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

Помогите, пожалуйста, написать программу!)

Решение задачи: «В заданном массиве строк найти все слова, содержащие заданное количество гласных букв, и вывести их»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. int is_vowels(const char* s, int n){
  5.     int k, j;
  6.     static char  cs[26];
  7.     static const char* i = NULL;
  8.  
  9.     if(i == NULL){
  10.         memset(cs, 0, sizeof(cs));
  11.         for(i = "AEIOUY"; *i; ++i)
  12.             cs[*i - 'A'] = 1;
  13.     }
  14.  
  15.     for(j = 0; *s; ++s){
  16.         k = *s & 0xDF;
  17.         if(k >= 'A' && k <= 'Z'){
  18.             if(cs[k - 'A'])
  19.                 ++j;
  20.         }
  21.     }
  22.     return (j == n);   
  23. }
  24.  
  25. int main(void){
  26.     int   n, i;
  27.     char* w[] = {
  28.         {"ESI"}, {"EBX"}, {"EDI"}, {"EAX"}, {"ESP"}, {"EBP"}, {"EDX"}, {"ECI"}
  29.     };
  30.     n = sizeof(w)/sizeof(w[0]);
  31.  
  32.     //вывести слова с двумя гласными
  33.     for(i = 0; i < n; ++i){
  34.         if(is_vowels(w[i], 2))
  35.             printf("%s ", w[i]);
  36.     }
  37.     putchar('\n');
  38.  
  39.     //вывести слова с одним гласным
  40.     for(i = 0; i < n; ++i){
  41.         if(is_vowels(w[i], 1))
  42.             printf("%s ", w[i]);
  43.     }
  44.     return 0;
  45. }

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

В данном коде на языке C реализована функция is_vowels, которая принимает на вход два параметра: строку s и число n. Функция проверяет, содержит ли строка s заданное количество гласных букв (гласными считаются буквы A, E, I, O, U, Y). В функции используется массив cs, который содержит булевые значения для каждой буквы алфавита: если значение равно 1, то буква является гласной. В начале функции, если массив cs еще не инициализирован, он инициализируется значением 0. Затем происходит проверка каждой буквы строки s на принадлежность к гласным буквам. Если функция is_vowels возвращает значение 1, значит строка s содержит заданное количество гласных букв. В функции main создается массив строк w, содержащий несколько слов. Затем выполняется два прохода по массиву w: первый проход выводит на экран слова с двумя гласными буквами, второй проход выводит слова с одной гласной буквой. Пример вывода на экран: ESI EBX EBP ECI

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


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

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

11   голосов , оценка 4.182 из 5

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

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

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