我正在从事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;
}
答案 0 :(得分:0)
swap(s[i], s[n-1-1])
仔细查看第二个参数。
答案 1 :(得分:0)
#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]以及打印时的语法错误