Строки в 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;
}

Ответы (0 шт):