猪拉丁语英语句子

时间:2015-05-25 04:15:26

标签: c

#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编写的代码,但只能用于一个单词而不是句子。我需要句子帮助。请参阅上面的代码。

1 个答案:

答案 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