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