我有代码,其中我已经对字符串进行了标记,并打印了结果。代码有一个函数,我在其中使用一些指针算法来改变每个令牌以重复工作在" Pig Latin"如果单个标记的第一个字母以元音开头,代码还要求我用WORD + WAY打印单词。我认为一个开关(case)可以用于此,但我不确定用于完成此任务的字符串函数
以下是基地" Pig Latin"更改。
printlatinwork (char *TOKEN)
{
printf ("%s%c%s ", TOKEN + 1, TOKEN[0], "ay");
return;
}
从" test"
的输入返回esttay
答案 0 :(得分:1)
这不是太难,只需针对TOKEN
列表检查vowels
的第一个字符。类似于:
void printlatinwork (char *TOKEN)
{
char *vowels = "aeiouAEIOU";
if (strchr (vowels, *TOKEN))
printf ("%sway", TOKEN);
else
printf ("%s%c%s ", TOKEN + 1, TOKEN[0], "ay");
}
注意:需要string.h
如果你需要一个不依赖任何额外标题的版本,这样的东西也会起作用:
void printlatinwork (char *TOKEN)
{
char *vowels = "aeiouAEIOU";
char firstisvowel = 0;
char *v = vowels;
while (*v)
if (*TOKEN == *v++)
firstisvowel = 1;
if (firstisvowel)
printf ("%sway", TOKEN);
else
printf ("%s%c%s ", TOKEN + 1, TOKEN[0], "ay");
}