#include <stdio.h>
#include <string.h>
#include <conio.h>
#define isvowel(v) (v=='a' || v=='e' || v=='i' || v=='o' || v=='u')
int main()
{
char word[80];
char exit;
int length,x,y,z;
printf("\nTranslating English words to Pig Latin\n\n");
do
{
printf("\nEnter your English word:");
scanf("%s",word);
length = strlen(word);
for(y=0;y<length;y++)
if(isvowel(word[y]))
{
x=y;
break;
}
for(;x<length;x++)
printf("%c",word[x]);
for(z=0;z<y;z++)
printf("%c",word[z]);
printf("ay");
printf("\n\nPress ~ to exit\n\nEnter your word:");
exit=getch();
}
while(exit!='~');
return(0);
}
我有用C编写的代码,但只能用于一个单词而不是句子。我需要句子帮助。请参阅上面的代码。
答案 0 :(得分:0)
在你的do..while循环中,我可以看到像这样的for循环,
for(y=0;y<length;y++)
if(isvowel(word[y]))
{
x=y;
break;
}
这应该是
for(y=0;y<length;y++)
{
if(isvowel(word[y]))
{
x=y;
break;
}
}
我看到它的方式,您尚未将y
初始化为for(y=0;y<length;y++)
之前的任何值,然后通过此for
循环将y
的值增加到{ {1}},这就是我假设您要检查数组length-1
的每个y
索引,并且如果它是元音则突破word
循环。
它会生成以下输出:
for