在以下代码reverse函数中,返回空字符串。没有编译错误。
什么会导致这里的问题?
#include <iostream>
#include <bits/basic_string.h>
using namespace std;
string reverse(string str) {
string r;
for (int i=str.length()-1; i>=0; i--) {
r[str.length() - 1 - i] = str[i];
}
return r;
}
int main() {
string str = "ABCDefgh";
cout<<"Reverse string is : "<<reverse(str)<<endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
编辑:
r [str.length()-i] = str [i];
r [str.length()-1-i] = str [i];