用C++写一个代码输入一个名词英语单词,按照英语语法规则,把单数变成复数。规则如下: 1. 以辅音字母y结尾,则加 es; 2,以s,x,ch,sh结尾,则加es; 3. 以元音o结尾,则加 es; 4. 其他情况加 s. 注意:1项目简化为: 以y 结尾,则把y 变为i,加es,比如: family -> families
时间: 2023-06-19 08:06:52 浏览: 89
以下是C++代码实现:
```cpp
#include <iostream>
#include <string>
using namespace std;
bool isVowel(char c) {
return c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u';
}
string pluralize(string word) {
int len = word.length();
char last = word[len - 1];
char secondLast = len > 1 ? word[len - 2] : ' ';
if (last == 'y' && !isVowel(secondLast)) {
word.pop_back();
word += "ies";
} else if (last == 's' || last == 'x' || (last == 'h' && (secondLast == 'c' || secondLast == 's'))) {
word += "es";
} else if (last == 'o' || last == 'O') {
word += "es";
} else {
word += "s";
}
return word;
}
int main() {
string word;
cout << "Enter a singular noun: ";
cin >> word;
string plural = pluralize(word);
cout << "The plural of " << word << " is " << plural << endl;
return 0;
}
```
代码中,我们首先定义了一个 `isVowel()` 函数,用于判断一个字符是否为元音字母。然后,我们定义了 `pluralize()` 函数,用于将单数形式的名词转换为复数形式。在函数中,我们首先获取单数名词的最后一个字符和倒数第二个字符,然后根据不同的情况进行对应的转换,最后返回转换后的复数名词。在 `main()` 函数中,我们首先让用户输入一个单数名词,然后调用 `pluralize()` 函数将其转换为复数形式,并输出结果。