我想反轉一個字符串。有人可以解釋爲什麼這給我分段錯誤嗎?反轉字符串程序中的分段錯誤
#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()'。 –