When you are printing a tab character to the standard output using printf in C, it outputs some space which is apparently 4 characters in length.
printf
That's something controlled by your terminal, not by printf.
printf simply sends a \t to the output stream (which can be a tty, a file etc), it doesn't send a number of spaces.
\t