Поскольку вы заранее не знаете количество слов в string ss
, вы не можете указать size
при вызове функции Split
.Не зная size
, вы не сможете выделить память для nums
.
Так что вам лучше использовать vector
из string
с.Как указывалось, vector
доступен в C ++ 98.
Тогда ваша измененная функция Split
будет выглядеть так:
vector<string> Split(string ss, char delimiter)
{
vector<string> vs;
int index_c, index_sw=0, j;
for(j=0;j<ss.length();j++)
{
if (ss.at(j) == delimiter)
{
index_c = j;
vs.push_back(ss.substr(index_sw, index_c - index_sw));
index_sw = index_c + 1;
}
}
vs.push_back(ss.substr(index_sw, j - index_sw));
return vs;
}
, которая затем может быть вызвана так:
vector<string> ret = Split("This is a stackoverflow answer", ' ');
См. Демо здесь .