|
> 一時バッファが増えて効率も悪くなりますがコードは読みやすいかと思って
> 最初に書いた方のコードも投稿します。
s についての単一ループにするよりも、
data についての二重ループにしたほうが、分かりやすくなると思うんですが。
for (i = j = 0; j < 4; j++, i++) {
for (k = 0; s[i] != ',' ; k++)
data[j][k] = s[i++];
data[j][k] = '\0';
}
sscanf を使って書くとこうなります。
sscanf(s, "%9[^,],%9[^,],%9[^,],%9[^,]", data[0], data[1], data[2], data[3]);
|