Нужна собственная реализация этой функции. Немогу ничего грамотного реализовать. Может быть у кого то есть какой то пример этой функции.
Велосипедный вариант:
bool schar(const string& str, const char& op)
{
auto it = str.cbegin();
while (it != str.cend()) {
if (*it == op) return true;
it++;
}
return false;
}
string smerge(string::const_iterator& it1,string::const_iterator& it2,const string& delim)
{
string ss;
while (it1 != it2) {
if (!schar(delim,*it1))
ss += *it1;
it1++;
}
return ss;
}
vector<string> stoken(const string& str,const string& delim)
{
auto it1 = str.cbegin();
auto it2 = str.cbegin();
vector<string> vec;
while (it2 != str.cend()) {
if (schar(delim, *it2)) {
string s = smerge(it1, it2, delim);
if(s.size()) {
vec.push_back(s);
}
}
it2++;
}
vec.push_back(smerge(it1, it2, delim));
return vec;
}
Ну, например, так - просто и незатейливо:
char * mystrtok(char * str, const char * delim)
{
static char * last = 0;
if (str) last = str;
if ((last == 0) || (*last == 0)) return 0;
char * c = last;
while(strchr(delim,*c)) ++c;
if (*c == 0) return 0;
char * start = c;
while(*c && (strchr(delim,*c)==0)) ++c;
if (*c == 0)
{
last = c;
return start;
}
*c = 0;
last = c+1;
return start;
}
Можно взять и посмотреть внутри glibc
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Если мы используем reinterpret_cast для приведения указателя к указателю, объекта к указателю или указателя к объекту, то приведение осуществляется...
ЗдравствуйтеЕсть класс ComparisionTable, наследуемый от QWidget с виджетами: два QLabel и один QTableWidget