>>76 間違えた。
printf("%*s\n", (int)klen, str + i);

printf("%.*s\n", (int)klen, str + i);
に訂正。