"требуется написать программку, которая считывает английский текст из файла и выводит на экран слова текста, начинающиеся и оканчивающиеся на гласные буквы. "
Конкретно интересует вопрос о словах начинающихся и оканчивающихся на гласные буквы. Никак не могу понять каким образом их сортировать?
Другие языки программирования и технологии
Помогите с программкой 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;
}
#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;
}
Перебираем все слова, проверяем первую и последнюю буквы на гласность
Похожие вопросы
- Программка c# нужна помощь
- помогите!!! вопрос по C++ нужно написать программку "заполните массив так, чтобы все его элементы были различны.
- !!! Каким кодом на C++ можно реализовать следующую задачу? помогите написать программку !!!
- / Каким кодом на C++ можно реализoвать следующую задачу? помогите написать программку !!!
- Помогите, лёгкий код C++
- помогите закончить код C++
- Помогите написать программку в Паскале...
- Помогите решить задачу c#
- Срочно!!! Помогите написать программку Pascal!!!Очень надо!!!
- помогите написать программку которая определяет среднее арифметическое непарных элементов массива.