试图刷新我的编码。回文练习给我一个问题。用谷歌搜索我的错误但无法修复。

Trying to refresh my coding. Palindrome excercise giving me an issue. Googled my error but cant fix it.

我正在做一个 C++ 练习,老实说,关于字符串的知识有点模糊,这可能是为什么它不起作用。我在句法上忘记了很多,但总体上我对 OOP 有很好的基础理解。只是想重新回到事情的轨道上。我也知道我对 std:: 的一致性很奇怪,然后在 cin haha​​ 之类的地方省略它。就是闹着玩的。谢谢你的帮助。

#include <iostream>
#include <string>
std::string reverse(std::string s);
using namespace std;

int main(){

        std::string s;
        cin>>s;

        std::string n = reverse(s);
        if(n == s){
                std::cout<<"plindrome"endl;
        }
}


string reverse(string s){

        int n = s.length();

        for(int i = 0; i<n/2; i++){
                swap(s[i], s[n-1-1])
        }

        return s;

}
swap(s[i], s[n-1-1])

仔细看第二个参数

#include <iostream>
#include <string>
std::string reverse(std::string s);
using namespace std;

string reverse(string s) {

    int n = s.length();

    for (int i = 0; i<n / 2; i++) {
        swap(s[i], s[n - i - 1]);
    }

    return s;

}

int main() {

    std::string s;
    cin >> s;

    std::string n = reverse(s);
    if (n == s) {
        std::cout << "plindrome" << endl;
    }
}

刚刚修复了交换行,因此它应该是 s[i] 和 s[n - i - 1],打印时出现语法错误