C/C++

Не могу решить задачу в яндекс практикуме

Задание 2
Чтобы искать документы, нужно уметь разбивать текст на слова. Мы сделаем это нестандартно, поэтому напишем свой алгоритм.
Для начала поймём, где разбивать строку. Будем считать, что слова разделяются пробелами. Если подряд идёт несколько пробелов, то между двумя соседними пробелами есть пустое слово.
Считайте с терминала строку полностью до перевода строки. Выведите индексы символов, перед которыми заканчиваются слова. Если вы считали пустую строку, нужно вывести 0, потому что в этой строке есть пустое слово. Оно заканчивается там же, где строка — перед нулевым символом.
Например, если вы считали строку с двумя пробелами:
green parrot
то, нужно вывести:
5
6
13
Перед символами с этими индексами заканчиваются слова green, пустое слово и слово parrot соответственно.
Это максимум информации, к сожалению.
Звучало сложнее, если честно:

#include < iostream >
#include < vector >

using namespace std;
using ll = long long;
int main() {
vector ans;
string s;
getline(cin, s);
for (ll i = 0; i < s.length(); i++) {
if (s[i] == ' ')
ans.push_back(i);
}
if(s.back() != ' ')
ans.push_back(s.length());
for (auto &i: ans)
cout << i << "\n";
}
Сергей Куцеконь
Сергей Куцеконь
8 952
Лучший ответ
На работу в Яндекс все равно не возьмут, там исключительно свои отпрыски. Поищи занятие получше, чем эти дебильные практикумы для бесплатных работников и халявных идеегенераторов)))
Денис З
Денис З
37 945
Если еще актуально, то я решил так

#include
#include

using namespace std;

int main() {
string s;
getline(cin, s);
for (int i = 0; i<=s.length(); ++i){

if(s[0]=='\0'){
cout << "0" << endl;
break;
} else{
if (s[i]==' '){
cout << i << endl;
}
}

}
if(s.length()>0){
cout << s.length() <<endl;
}
а в гугле нельзя -_-
Da
Dauren
262
#include <iostream>
#include <string>

using namespace std;

int main() {
string query;
int n = 0;
getline(cin, query);
for (int i = 0; i < 1 + query.length(); ++i) {
if (query[i] == ' ')
cout << i << endl;
if (i == query.length())
cout << i << endl;
}

return 0;
}
IH
Ibrahim Haciev
181
офиц. решение #include <iostream>

#include <string>



using namespace std;



int main() {

string query;

getline(cin, query);



for (int i = 0; i < query.size(); ++i) {

if (query[i] == ' ') {

cout << i << endl;

}

}

cout << query.size() << endl;

}



https://pastebin.com/VyXMNENq
ПРОВЕРЕНО, работает.