#include #include #include #include const char *firstVowel(const char *word) { const char *answer = strpbrk(word, "aeiouAEIOU"); if (answer == NULL) answer = word; return answer; } void prtbtwn(const char *b, const char *e) { while (e != b) { putchar(*b); b += 1; } } void pigprint(const char *b, const char *e) { const char *v = firstVowel(b); if (v > e) v = b; prtbtwn(v, e); prtbtwn(b, v); putchar('a'); putchar('y'); } void latinize(const char *line) { int inWord = 0; const char *endOfWord = line; const char *begOfWord = line; while(*line) { if (inWord) { if (!isalpha(*line)) { endOfWord = line; inWord = 0; pigprint(begOfWord, endOfWord); putchar(*line); } } else { if (isalpha(*line)) { begOfWord = line; inWord = 1; } else { putchar(*line); } } line += 1; } if (inWord) pigprint(begOfWord, line); } int main() { char *line = malloc(24); size_t n = 24; while(!feof(stdin)) { ssize_t count = getline(&line, &n, stdin); if (count < 0) break; latinize(line); } }