Строки в C++, Исключение гласных букв
Всем привет , нужно написать код , в котором вводится строка. Дальше введенные согласные буквы и цифры сортируются ,и после z появляется !. Я все это сделал , но одно но , почему-то в моем коде гласные не убираются. Мой вопрос , где тут ошибка ? Сам код :( где-то в нижнем цикле ошибка)
#include <stdlib.h>
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
const int MAX = 228;
char mas[228], temp;
char mas1[228];
int n, i, j,k=0;
cout << "String - ";
cin.getline(mas,128);
n = strlen(mas);
for (i=0; i<n-1; i++)
{
for (j=i+1; j<n; j++)
{
if (mas[i] > mas[j])
{
temp = mas[i];
mas[i] = mas[j];
mas[j] = temp;
}
}
}
cout << mas;
for (i = 0; mas[i]; i++)
{
if (mas[i] == 'z'|| mas[i] == 'Z')
{
mas1[k] = mas[i];
k++;
mas1[k] = '!';
k++;
}
else mas1[k++] = mas[i];
}
mas1[k] = '\0';
cout << mas1;
for (k = 0; mas1[i]; k++ )
{
if (!(mas1[i] == 'a' || mas1[i]== 'e' || mas1[i]== 'i' || mas1[i]== 'u' || mas1[i]== 'o' ||mas1[i]== 'y'))
{
mas1[i] = mas[i];
i++;
}
}
cout << mas <<" " << mas1;
}