英语名词变复数的方法 是程序性知识吗?
动词变为名词的方法
#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(排队)等。