Другие языки программирования и технологии

Помогите с программкой C++.

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

Конкретно интересует вопрос о словах начинающихся и оканчивающихся на гласные буквы. Никак не могу понять каким образом их сортировать?
Если Вы увидите код, то поймёте?

#include <iostream>
#include <fstream>
using namespace std;

int main(){

ifstream f("input.txt");

char glas[7] = "aeiouy"; // массив, для хранения гласных букв
//char str[50] = "Hello world. I want to improve my English.";
char ch[80];
char buffer[20]; // буфер - переменная для временного нахождения слова
int counter(0); // счётчик букв буфера
bool mark1, mark2;

// в цикле пройдёмся по всей строке и найдём все слова
//for(int i(0); i < strlen(str); i++)

while(f.is_open())
{
f.getline(ch,80);

// находим слово и записываем его в буфер
for(int i(0); i < strlen(ch); i++)
{
// находим слово и записываем его в буфер
if((i >= 0) && (isalpha(ch[i])))
{
buffer[counter++] = ch[i];
}
else
{
buffer[counter] = '\0';
mark1 = false; mark2 = false;
for(int j(0); glas[j]; j++)
{
// переводим всё нижний регистр (делаем их строчными)
// и сравниваем с гласными буквами из массива glas[]
// если первая буква будет гласной, то mark1 = true,
// если последняя буква окажется гласной, то mark2 = true
if(tolower(buffer[0]) == glas[j]) mark1 = true;
if(tolower(buffer[strlen(buffer)-1]) == glas[j]) mark2 = true;
}

// если первая и последняя буквы слова гласные, то выводим на экран
if(mark1 && mark2) cout << buffer << endl;
counter = 0; // обнуляем счётчик букв буфера для следующего слова
}
}
}

f.close();

system("pause > nul");
return 0;
}
АС
Александр Самошкин
5 430
Лучший ответ
Перебираем все слова, проверяем первую и последнюю буквы на гласность