пример -> пример, но вместо этого печатается xampleeay. Если оно начинается с гласной (a, e, i, o, u), просто добавьте «yay» в конце. Как это исправить?
quick -> ickquay, но вместо этого печатается uickqay. 'qu' предполагается рассматривать как пару букв вместе как согласную. Как мне это исправить?
у воспринимается как гласный только после первого появления, но у меня это получилось.
Все ведущие согласные переносятся в конец слова до тех пор, пока он не достигнет первой гласной (включая y), и не добавят «ay» в конце. И это, кажется, работает.
#include <stdio.h>
#include <string.h>
#include <stdbool.h>
bool isVowel(char v);
int main()
{
char str1[50] = "";
char str2[10] = "";
int i;
int length;
printf("Pig Latin Translator\n");
printf("----------------------\n");
printf("Type a word: ");
scanf("%s", str1);
length = strlen(str1);
strncat(str2, str1,1);
for(i = 0; i < length; i++)
{
str1[i] = str1[i + 1];
}
strcat(str1, str2);
strcat(str1, "ay");
printf("%s", str1);
return 0;
}
bool isVowel(char v) {
if (v == 'A' || v == 'E' || v == 'I' || v == 'O' || v == 'U' ||
v == 'a' || v == 'e' || v == 'i' || v == 'o' || v == 'u') {
return true;
}
return false;
}