D
Denis Petronenko
Why do i have segmentaion fault after executing str.erase(it.base()) ?
compiler gcc 3.3.6.
string TrimRight(const string& strin)
{
string str = strin;
string::reverse_iterator it = str.rbegin();
while(it!=str.rend() && *it==' '){
str.erase(it.base());
it = str.rbegin();
}
return str;
}
int main()
{
string str = "hello ";
cout << str << "|"<< endl;
str = TrimRight(str);
cout << str << "|"<< endl;
return 0;
}
compiler gcc 3.3.6.
string TrimRight(const string& strin)
{
string str = strin;
string::reverse_iterator it = str.rbegin();
while(it!=str.rend() && *it==' '){
str.erase(it.base());
it = str.rbegin();
}
return str;
}
int main()
{
string str = "hello ";
cout << str << "|"<< endl;
str = TrimRight(str);
cout << str << "|"<< endl;
return 0;
}