из строки в массив на С[++]

Есть строка, содержащая некоторое (в лучшем случае наперёд неизвестное) количество чисел через некий разделитель:
char *str="0,-1.5,5.3,2,3,4,5";
Как наилучшим образом их считать в массив?
Вариант
while(sscanf(str,"%f",array[i++]) );
не работает, т.к. sscanf всё время начинает с начала строки…
такие дела.
#include <stdio.h>
#include <string.h>
int main()
{
        char *str="0,-1.5,5.3,2,3,4,5";
        char tok = ',';
        int i = 0;
        char *tmp_str;
        float arr[7]= {0};
        sscanf(str, "%f", &arr[i]);
        tmp_str = str;
        while ((tmp_str = strchr(tmp_str+1, tok))) {
                sscanf(tmp_str+1, "%f", &arr[++i]);
        }
        for (i = 0; i < 7; i++)
                printf("%f\n", arr[i]);
        return 0;
}
Спасибо за ответ, eXire.

За неимением элегантного решения пришлось сделать через fscanf ;(
такие дела.
 
Зарегистрироваться или войдите чтобы оставить сообщение.