【发布时间】:2020-03-17 06:57:16
【问题描述】:
example -> exampleyay 而是打印 xampleeay。如果它以元音(a,e,i,o,u)开头,则应该在末尾添加'yay'。我该如何解决?
quick -> ickquay 而是打印 uickqay。 'qu'应该被视为一个字母对一起作为辅音。我该如何解决这个问题?
y 仅在第一次出现后才被视为元音,但我得到了它的工作。
所有前导辅音都移到单词的末尾,直到它到达第一个元音(包括 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;
}
【问题讨论】:
-
bool isVowel(char v) { return strchr("AEIOU", toupper(v)); }