Матч 336, Гласные латинские (VowelLatin)

Дивизион 2, Уровень 1

 

Имеется система кодирования слов, которая называется “гласные латинские”. Все гласные буквы извлекаются из слова и дописываются в конец в таком же порядке, в котором они следовали в самом слове. Гласными являются буквы ‘a’, ‘e’, ‘i’, ‘o’, ‘u’ (заглавные и прописные). Необходимо описанным образом закодировать входное слово.

 

Класс: VowelLatin

Метод: string translate(string word)

Ограничения: word содержит от 1 до 50 символов ‘A’-‘Z’,‘a’-‘z’.

 

Вход. Строка из прописных и заглавных букв латинского алфавита.

 

Выход. Закодированное слово.

 

Пример входа

word

XYz

“application”

“aeioOa”

 

Пример выхода

“XYz”

“pplctnaiaio”

“aeioOa”

 

 

РЕШЕНИЕ

обработка строк

 

Проходим по входному слову и заносим в строку v гласные , а в строку c согласные буквы. Закодированным словом будет конкатенация строк c и v.

 

ПРОГРАММА

 

#include <cstdio>

#include <string>

#include <cstdlib>

using namespace std;

 

int isvowel(char c)

{

  return ((c == 'A') || (c == 'E') || (c == 'I') || (c == 'O') || (c == 'U'));

}

 

class VowelLatin

{

  public:

  string translate(string word)

  {

    string v, c;

    for(int i = 0; i < word.size(); i++)

      if (isvowel(toupper(word[i]))) v += word[i]; else c += word[i];

    return c + v;

  }

};