Есть задание: из текста, в котором 2 до 40 слов, в каждом из которых от 1 до 6 строчных латинских букв; между соседними словами – не менее одного пробела, за последним словом – точка. Вывести те слова, которые отличны от первого и удовлетворяют следующему свойству: в слове встречается хотя бы одна из гласных букв (e, u, i, o, a) .
bool glasn(char *s) {
int i;
char v[] = "aoiue";
for (i = 0; i < 6; i++)
if (strchr(v, s[i]))
return true;
return false;
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
AnsiString text;
AnsiString slovo;
char a[40][6];
text=Edit1->Text;
if ( int m=text.Pos('.'))
{
int i=0;
int p=text.Pos(' ');
while (p!=0)
{
slovo=text.SubString(1,p-1);
strncpy(a[i], slovo.c_str(), 6);
i++;
text.Delete(1,p);
p=text.Pos(' ');
}
text.Delete(text.Length(),1);
strncpy(a[i],text.c_str(),6);
Edit2->Text="";
for (int k=1; k<i ;k++)
if (!strcmp(a[k],a[0]) && glasn(a[k]))
Edit2->Text = Edit2->Text+' '+a[k];
}
else ShowMessage ("В тексте нет точки");
}
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости