Мне нужна помощь в извлечении слов из строки в C ++.В определении упражнения, которое я пытаюсь выполнить, слово - это любая последовательность букв и цифр, которая ограничена символами, которые не являются буквами или цифрами (например, взаимозаменяемость, пробелы и т. Д.) .Например:
This.Is.a.String
моя программа должна создать вектор строк, где элементами вектора будут отдельные слова из упомянутой строки, в данном случае «This», «Is», «a», "String".
Я попытался перебрать заданную строку с помощью цикла for и проверить условие, что всякий раз, когда символ, в котором мы сейчас находимся, равен (по значению ASCII) чему-либо между A и Z (aи z) и цифры 0 и 9, поместите его в строку.Затем поместите эту строку в вектор и измените размер строки на 0 (чтобы мы могли добавить другое слово). Это, похоже, не работает ...
vector<string> Function(string s) {
char letter;
string r;
vector<string> vector_string;
for(int i=0; i<s.length(); i++) {
letter=toupper(s.at(i)); // I do this so all letters are capital letters, so it's easier to compare them
r.resize(0);
while((letter>=65 || letter<=90) && (letter>=48 || letter<=57)) {
r.push_back(s.at(i));
}
vector_string.push_back(r);
}
return vector_string;
}
PS Я очень новичок в C ++.Я знаю, что это не близко к решению, но я должен был начать где-то.Я был бы очень признателен, если бы кто-нибудь из вас мог помочь мне с тем, что здесь делать!Это немного расстраивает.
Спасибо и извините, что нашли время!