src/main.cpp: In function ‘void getNounPlural(char*, char*)’: src/main.cpp:14:28: error: lvalue required as left operand of assignment if(s[l-2]=='s' and s[l-1]='h' ) s=s+"es"; ^~~
时间: 2024-04-13 16:28:52 浏览: 174
这个错误是因为在代码中的条件判断语句中使用了错误的赋值操作符。在C++中,使用`=`表示赋值操作,而使用`==`表示等于操作符。
在你提供的代码中,`s[l-1]='h'`这行应该改为 `s[l-1]=='h'`,即将赋值操作符`=`改为等于操作符`==`。
修正后的代码如下:
```cpp
#include <iostream>
#include <cstring>
void getNounPlural(char* s, char* plural) {
int l = strlen(s);
if (s[l-2]=='s' && s[l-1]=='h') {
strcat(plural, "es");
} else {
strcat(plural, "s");
}
}
int main() {
char noun[100];
char plural[100];
std::cout << "Enter a noun: ";
std::cin >> noun;
strcpy(plural, noun);
getNounPlural(noun, plural);
std::cout << "Plural form: " << plural << std::endl;
return 0;
}
```
修正后的代码在调用`getNounPlural()`函数时,将正确的条件判断语句应用于字符串`s`,并使用`strcat()`函数来连接字符串。请注意,使用`strcat()`函数之前,需要先将`plural`字符串初始化为空字符串。
希望这可以解决你的问题!如果还有其他疑问,请随时提问。
阅读全文