sprintf(buf, "%%%ds\n", num);
printf(buf, str);
を1手で実現できる