理解printf中的符号

use*_*000 1 c

这对许多人来说可能是一个非常基本的问题,但我无法理解%.*s在做什么?

void substring(int i, int j, char *ch) 
{
      printf("The substring is: %.*s\n", j - i, &ch[i]); 
      //what is %.*s doing?
}
Run Code Online (Sandbox Code Playgroud)

Ste*_*ere 6

*走的长度限制从字符串之前的参数字符串.所以printf的将输出(最多)j - i从人物&ch[i]stdout.如果字符串较短,则将打印整个字符串,但不会填充空白字符串.