我想反转一个字符串。有人可以解释为什么这给我分段错误吗?反转字符串程序中的分段错误
#include <iostream>
#include <string>
using namespace std;
int main(){
string str,rstr;
int len=str.length(),i=0;
cin>>str;
while(str[i]!='\0'){
rstr[--len]=str[i++];
}
rstr[str.length()]='\0';
cout<<rstr;
return 0;
}
必须在不使用库函数的情况下进行反转。
rstr是空的。你不能在不存在的元素上使用'[]'。 – NathanOliver
rstr [ - len]是一个无效的位置。预先为rstr分配存储空间 –
改为使用'std :: reverse()'。 –