#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
); }
int main(int argc, char *argv[])
{
char str[] = "Green Eggs and Ham";
remove_vowels(str, sizeof(str));
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1ZGUgPHN0cmluZy5oPgoKY2hhciB2b3dlbHNbXSA9IHsnYScsJ2UnLCdpJywnbycsJ3UnLCdBJywnRScsJ0knLCdPJywnVSd9OwoKaW50IGxpbmVhcl9zZWFyY2goY2hhciBjaHIsIGNoYXIqIHN0ciwgc2l6ZV90IGxlbikKewogICAgaW50IGk7CiAgICBmb3IgKGkgPSAwOyBpIDwgbGVuOyArK2kpCiAgICB7CiAgICAgICAgaWYgKHN0cltpXSA9PSBjaHIpCiAgICAgICAgewogICAgICAgICAgICByZXR1cm4gaTsKICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gLTE7Cn0KCmludCBpbihjaGFyIGNociwgY2hhciogc3RyLCBzaXplX3QgbGVuKQp7CiAgICByZXR1cm4gbGluZWFyX3NlYXJjaChjaHIsIHN0ciwgbGVuKSA9PSAtMSA/IDAgOiAxOwp9CgppbnQgaXNfYV92b3dlbChjaGFyIGNocikKewogICAgcmV0dXJuIGluKGNociwgdm93ZWxzLCBzaXplb2Yodm93ZWxzKSk7Cn0KCnZvaWQgcmVtb3ZlX3Zvd2VscyhjaGFyKiBzdHIsIHNpemVfdCBsZW4pCnsKICAgIGNoYXIqIGJ1ZiA9IG1hbGxvYyhzaXplb2YoKmJ1ZikqbGVuKTsKICAgIGludCBpLCBqPTA7CiAgICBmb3IgKGkgPSAwOyBpIDwgbGVuOyArK2kpCiAgICB7CiAgICAgICAgaWYgKCFpc19hX3Zvd2VsKHN0cltpXSkpCiAgICAgICAgewogICAgICAgICAgICBidWZbal0gPSBzdHJbaV07CiAgICAgICAgICAgICsrajsKICAgICAgICB9CiAgICB9CiAgICBtZW1jcHkoc3RyLGJ1ZixzaXplb2YoKnN0cikqaik7CiAgICBmcmVlKGJ1Zik7Cn0KCmludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCnsKICAgIGNoYXIgc3RyW10gPSAiR3JlZW4gRWdncyBhbmQgSGFtIjsKICAgIHByaW50ZigiJXNcbiIsIHN0cik7CiAgICByZW1vdmVfdm93ZWxzKHN0ciwgc2l6ZW9mKHN0cikpOwogICAgcHJpbnRmKCIlc1xuIiwgc3RyKTsKICAgIHJldHVybiAwOwp9