1156: 单数变复数 C语言

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;
}

猜你喜欢

转载自blog.csdn.net/m0_45306379/article/details/121768921