Now that you know everything you need about (s)printf, I would just ask you: why not put the numbers in the first column? If your (s)printf formatting was like this:
you wouldn't have to worry about how big the words are. (You only have to worry about how big the numbers get, and that's a much easier issue to handle.)