行全体をチャンクとして印刷するのではなく、行の長さを使用して長い行を折り返し、(行の長さの) 1 行ずつ印刷しようとしています。行の長さごとに '\n' 文字を追加するとうまくいくと思い、次のコードを書きました。
void wrap(char *tok, int len)
{
int i, h;
char *ss = tok;
for (h = linelen; h < (len + 1); (h + linelen))
{
ss[h] = '\n';
printf("%d\n", h);
h += linelen;
}
char *token = strtok(ss, "\n");
while (token)
{
printf("%s\n", token);
token = strtok(NULL, "\n");
}
}
しかし、このコードは機能していないようです。行の折り返しを実現するには、他にどのような方法がありますか?