> > for(i = 0; buf[i] != ' ' && buf[i] != '\0'; value[i] = buf[i], i++);
[...]
> 1) value[i] = buf[i] will be done first
Also, that construct was probably done that way to shield one from
the undefined order of evaluation of value[i] and buf[i], as
value[i++] = buf[i] or value[i] = buf[i++] would be undefined.
--
Vincent Penquerc'h