1156: 单数变复数
时间限制: 1 Sec 内存限制: 128 MB
提交: 4090 解决: 2599
[状态] [讨论版] [提交] [命题人:admin]
题目描述
输入一个名词英语单词,按照英语语法规则把单数变成复数。规则如下:
(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>
int main() {
char str[21];
char a[] = "s", b[] = "es";
int len;
// 输入一个仅含小写字母的字符串
gets(str);
len = strlen(str) - 1;
// 判断结尾字符是否符合相应条件
if(str[len] == 'o' || str[len] == 's' || str[len] == 'x' ||
(str[len - 1] == 'c' || str[len - 1] == 's') && str[len] == 'h')
// 调用函数strcat()进行字符连接
strcat(str, b);
else if(str[len] == 'y'){
str[len] = 'i';
strcat(str, b);
}
else
strcat(str, a);
// 输出数组元素
puts(str);
return 0;
}