编写一个函数RegularPlural,其功能是实现一个英文单词的复数形式。复数的规则为:
(1) 如果单词末尾为s,x,z,ch或sh,则在后面加es
(2) 如果单词末尾为y,且前一个字母为辅音(除a, e, i, o, u以外的其它情况),则把y改成ies。
(3) 如果是其它情形,一律在后面加s。
编写测试程序,输入一个长度小于20的单词,输出该单词的复数形式。
输入:
box
输出:
boxes
#include<iostream>
#include<string>
using namespace std;
void RegularPlural(string word) {
char end = word[word.size() - 1];
char end2 = word[word.size() - 2];
if (end == 's' || end == 'x' || end == 'z') {
cout << word << "es";
return;
}
if (end2 == 'c' || end2 == 's') {
if (end == 'h') {
cout << word << "es";
return;
}
}
if (end == 'y') {
if (end2 != 'a' && end2 != 'e' && end2 != 'i' && end2 != 'o' && end2 != 'u') {
word[word.size() - 1] = 'i';
cout << word << "es";
return;
}
}
cout << word << "s";
return;
}
int main() {
string word;
cin >> word;
RegularPlural(word);
return 0;
}
总结:
考虑三种情况就可以了
没什么问题