题目描述输入一个名词英语单词,按照英语语法规则把单数变成复数。规则如下:
(1) 以辅音字母y结尾,变y为i,再加es;
(2) 以s, x, ch, sh结尾,则加es;
(3) 以元音o结尾,则加es;
(4) 其他情况加上s。
输入
输入一个字符串,仅含小写字母,长度不超过20。
输出
输出其对应的复数形式。
样例输入 Copy
butterfly
样例输出 Copy
butterflies
#include <stdio.h>
#include <string.h>
#define N 25 //定义的长度够用即可
int main()
{
char str[N],a[]="s",b[]="es";//注意理解a[]={'s'},b{'e','s'}和a[]="s",b[]="es"的差别
int L;
gets(str);
L=strlen(str);
if(str[L-1]=='s' || str[L-1]=='x' || str[L-1]=='o'||((str[L-2]=='c' || str[L-2]=='s') && str[L-1]=='h')) //以s, x, ch, sh结尾,则加es,以元音o结尾,则加es;
strcat(str,b);
else if(str[L-1]=='y') // 以辅音字母y结尾,变y为i,再加es;
{
str[L-1]='i';
strcat(str,b);
}
else //其他情况加上s。
strcat(str,a);
puts(str);
return 0;
}