Написал функцию для парсинга строк вида "строка1,строка2,строка3,строка4", чтобы вытаскивать элементы из строки по номеру индекса. Вроде бы работает нормально, но иногда результат не совсем тот:
Код: char* GetStringItem(const char* _string, int item, const char* delimiter)
{
char p[SIZE], copy[SIZE], *P;
P = StrStr(_string, delimiter);
if (P)
{
P += 1;
if (item != 1) return GetStringItem(P, item - 1, delimiter);
else
{
P = StrStr(lstrcpy(copy, _string), delimiter);
*P = 0;
lstrcpy(p, copy);
}
}
else if (item == 1) lstrcpy(p, _string);
else return NULL;
return p;
}
Код: char* GetStringItem(const char* _string, int item, const char* delimiter)
{
char p[SIZE], copy[SIZE], *P;
P = StrStr(_string, delimiter);
if (P)
{
P += 1;
if (item != 1) return GetStringItem(P, item - 1, delimiter);
else
{
P = StrStr(lstrcpy(copy, _string), delimiter);
*P = 0;
lstrcpy(p, copy);
}
}
else if (item == 1) lstrcpy(p, _string);
else return NULL;
return p;
}