英语名词变复数的方法 是程序性知识吗?

作者&投稿:佛紫 (若有异议请与网页底部的电邮联系)
英语中 名词变复数的方法~

动词变为名词的方法

#include
#include

using namespace std;

string pluralize(string& singular)
{
string plural;
if (singular[singular.size()-1] == 'y') {
singular[singular.size()-1] = 'i';
plural = singular + "es";
}
else if (singular[singular.size()-1] == 's' ||
singular[singular.size()-1] == 'x' ||
(singular[singular.size()-2] == 'c' &&
singular[singular.size()-1] == 'h') ||
(singular[singular.size()-2] == 's' &&
singular[singular.size()-1] == 'h')) {
plural = singular + "es";
}
else if (singular[singular.size()-1] == 'o') {
plural = singular + "es";
}
else {
plural = singular + "s";
}
return plural;
}


int main ()
{
string word;
cin >> word;
cout << pluralize(word) << endl;
}
程序没有优化,但是功能完全,能解决你的问题!
楼上说的没办法!但是我想这个问题真的要解决恐怕几乎不可能

可以把名词变复数的方法看作程序性知识,是有规律可循的。
一,一般的可数名词直接加–s。如,desks(钢笔),pens(钢笔)。
二,以s,x,sh,ch结尾的单词后加es,如boxes(箱子),watches(手表)。
三,以辅音字母加y结尾的,变y为i加es。
例如,bodies(身体),parties(排队)等。