A tab character should advance to the next tab stop. Historically tab stops were every 8th character, although smaller values are in common use today and most editors can be configured.
I would expect your output to look like the following:
123456789 a b c
The algorithm is to start a column count at zero, then increment it for each character output. When you get to a tab, output n-(c%n)
spaces where c
is the column number (zero based) and n
is the tab spacing.