#include <stdio.h>
int isVowel(char ch)
{
if (ch >= 'A' && ch <= 'Z')
ch = (ch - 'A') + 'a';
return (ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u');
}
int removeVowels(char *s)
{
int removed = 0;
if (s)
{
while (*s != '\0')
{
char ch = *s++;
if (isVowel(ch) && (*s == ch))
{
char *src = s, *dst = s;
do {
++src;
++removed;
}
while (*src == ch);
while (*src != '\0') {
*dst++ = *src++;
}
*dst = '\0';
}
}
}
return removed;
}
int main()
{
char s[] = "Estaa e umaa string coom duuuplicadoos";
int removed = removeVowels(s);
printf("%s\n# Removed: %d", s, removed);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgppbnQgaXNWb3dlbChjaGFyIGNoKQp7CiAgICBpZiAoY2ggPj0gJ0EnICYmIGNoIDw9ICdaJykKICAgICAgICBjaCA9IChjaCAtICdBJykgKyAnYSc7CiAgICByZXR1cm4gKGNoID09ICdhJyB8fCBjaCA9PSAnZScgfHwgY2ggPT0gJ2knIHx8IGNoID09ICdvJyB8fCBjaCA9PSAndScpOwp9IAoKaW50IHJlbW92ZVZvd2VscyhjaGFyICpzKQp7CiAgICBpbnQgcmVtb3ZlZCA9IDA7CgogICAgaWYgKHMpCiAgICB7CiAgICAgICAgd2hpbGUgKCpzICE9ICdcMCcpCiAgICAgICAgewogICAgICAgICAgICBjaGFyIGNoID0gKnMrKzsKCiAgICAgICAgICAgIGlmIChpc1Zvd2VsKGNoKSAmJiAoKnMgPT0gY2gpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBjaGFyICpzcmMgPSBzLCAqZHN0ID0gczsKCiAgICAgICAgICAgICAgICBkbyB7CiAgICAgICAgICAgICAgICAgICArK3NyYzsKICAgICAgICAgICAgICAgICAgICsrcmVtb3ZlZDsKICAgICAgICAgICAgICAgIH0KCQkJCXdoaWxlICgqc3JjID09IGNoKTsKCgkJCQl3aGlsZSAoKnNyYyAhPSAnXDAnKSB7CgkJCQkJKmRzdCsrID0gKnNyYysrOwoJCQkJfQoKCQkJCSpkc3QgPSAnXDAnOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiByZW1vdmVkOwp9CgppbnQgbWFpbigpCnsKCWNoYXIgc1tdID0gIkVzdGFhIGUgdW1hYSBzdHJpbmcgY29vbSBkdXV1cGxpY2Fkb29zIjsKCWludCByZW1vdmVkID0gcmVtb3ZlVm93ZWxzKHMpOwoJcHJpbnRmKCIlc1xuIyBSZW1vdmVkOiAlZCIsIHMsIHJlbW92ZWQpOwoJcmV0dXJuIDA7Cn0=