Instead of directly multiplying the choices for each digit, let's use complementary counting: count all 3-character strings from \( S=\{0,1,\dots,8\} \) and subtract those that don't qualify as genuine 3-digit numbers (i.e. those starting with 0).
With repetition allowed and 9 symbols available, the total number of 3-character strings (ignoring the leading-digit restriction) is \( 9 \times 9 \times 9 = 729 \). Among these, the strings that start with \( 0 \) are not valid 3-digit numbers; there are \( 1 \times 9 \times 9 = 81 \) such strings (first position fixed as 0, the other two positions free). Subtracting, the count of genuine 3-digit numbers is \( 729 - 81 = 648 \).
Complementary counting confirms the same total as the direct multiplication method.
Therefore, the correct answer is 648.