#include <stdio.h>
#include <stdlib.h>
#include <string.h>

char vowels[] = {'a','e','i','o','u','A','E','I','O','U'};

int linear_search(char chr, char* str, size_t len)
{
    int i;
    for (i = 0; i < len; ++i)
    {
        if (str[i] == chr)
        {
            return i;
        }
    }
    return -1;
}

int in(char chr, char* str, size_t len)
{
    return linear_search(chr, str, len) == -1 ? 0 : 1;
}

int is_a_vowel(char chr)
{
    return in(chr, vowels, sizeof(vowels));
}

void remove_vowels(char* str, size_t len)
{
    char* buf = malloc(sizeof(*buf)*len);
    int i, j=0;
    for (i = 0; i < len; ++i)
    {
        if (!is_a_vowel(str[i]))
        {
            buf[j] = str[i];
            ++j;
        }
    }
    memcpy(str,buf,sizeof(*str)*j);
    free(buf);
}

int main(int argc, char *argv[])
{
    char str[] = "Green Eggs and Ham";
    printf("%s\n", str);
    remove_vowels(str, sizeof(str));
    printf("%s\n", str);
    return 0;
}