void trim(string &str)
{
string::iterator it = str.begin();
string::iterator end = str.end() - 1;
// trim at the starting
for(; it != str.end() && isspace(*it); it++)
;
str.replace(str.begin(), it, "");
// trim at the end
for(; end >= str.begin() && isspace(*end); end--)
;
str.replace(str.end(), end, ""); // i get the out_of_range exception here
}
Я хочу обрезать строку пробелов. Сначала я запускаю пробелы от начала, и он отлично работает, а затем я нахожу положения пробелов с конца и пытаюсь удалить его, и это вызывает исключение.Почему моя функция обрезки не работает?
Почему?
Разве вы не сделали переменные слишком местными? – UncleBens
@UncleBens: Да, черт возьми. Исправлено. – sbi