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

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

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

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

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

textual
Листинг программы
#include <stdio.h>
#include <string.h>
 #include <ctype.h>
void func(char* str) 
{   
    char s[] = "aeuoi"; //y -все таки буква анг алфафита
    char* ptr = strtok(str, " "); 
    while(ptr) 
    { 
            if(strchr(s,tolower(ptr[0]))) //если первая буква ptr[0] в нижнем  регистре - будет найдена в s[] = "aeuoi" ....
            { 
                printf("%s\n", ptr); 
            }
          ptr = strtok(NULL, " "); 
    }
}
int main(void) 
{ 
    char buffer[100]; 
    printf("Inter a string\n"); 
    fgets(buffer,100,stdin); //fgets безопаснее (она считывает не больше чем указаное к-ство символов) чем gets (он ловит все подряд и если больше то ошибка.
    //непонятно зачем был нужен ещё один указатель
    func(buffer); 
}

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

В данном коде реализована функция func, которая принимает на вход строку и выводит все слова в этой строке, начинающиеся с гласных букв.

  1. char s[] =aeuoi; - в этой строке объявлен массив s, который содержит гласные буквы.
  2. char* ptr = strtok(str, ); - в этой строке используется функция strtok для разделения входной строки на отдельные слова.
  3. if(strchr(s,tolower(ptr[0]))) - в этой строке проверяется, является ли первая буква текущего слова гласной. Если да, то слово выводится на экран.
  4. printf(%s\n, ptr); - здесь выводится текущее слово.
  5. ptr = strtok(NULL, ); - в этой строке функция strtok вызывается снова, чтобы перейти к следующему слову в входной строке.
  6. int main(void) - в этой строке объявлена функция main, которая является точкой входа в программу.
  7. char buffer[100]; - в этой строке объявлен буфер, в который считывается строка, введенная пользователем.
  8. printf(Inter a string\n); - здесь выводится приглашение для ввода строки.
  9. fgets(buffer,100,stdin); - в этой строке считывается строка из стандартного ввода (что пользователь ввел на своем компьютере).
  10. func(buffer); - в этой строке вызывается функция func с введенной пользователем строкой в качестве аргумента.

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


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

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

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