ТАК в моей функции
string chopstring(string& tocut, List test[26]){
string totoken = "";
while(tocut[0] == ' ' || tocut[0] == 10 || tocut[0] == 13){
tocut.erase(0);
}
int finish = 0;
finish = tocut.find(" ", 0);
if (finish == string::npos){
cout << "NPOS!" << endl;
for(int i = 0 ; i < 26; i++)
test[i].Print();
}
for (int i = 0; i < finish; i++){
totoken += tocut[i];
}
string::iterator start = tocut.begin();
string::iterator end = tocut.begin() + totoken.length();
tocut.erase(start, end);
return tokenize(totoken);
}
У меня проблемы со строкой :: стереть. Удаляет всю строку? Какие-либо предложения? Я тоже хотел бы узнать причину, поэтому, пожалуйста, объясните, если знаете.
он вызывается в другой функции, которая хранит возвращенный токен в связанном списке, затем вызывает эту функцию снова, пока строка (tocut) не станет пустой. Первая строка это
«Путешественник во времени (так о нем будет удобно говорить)».
Сейчас происходит то, что он берет первое «The», токенизирует его и делает свое дело, но tocut.erase (start, end) удаляет всю строку и вызывает сбой программы.