printf("%*.*s",10,7,str);
равно
printf("%10.7s",str);
Вы приказываете printf напечатать как минимум 10 букв и первые 7 символов в строке, поэтому
" c-point"
^^^^^^^^^^
Заполняемый символ - это пробел и по умолчанию используется выравнивание вправо.
И вы можете изменить выравнивание влево на
printf("%-10.7s",str);
, оно выведет
"c-point "
, и вы не можете добавить 0
к %s
, но вы можете сделать это в преобразованиях с нумерацией c, и вы не можете использовать как -
, так и 0
в преобразованиях с нумерацией c, потому что -
переопределит 0
.