Я предполагаю, что под "системными функциями" вы подразумеваете нестандартные расширения. В этом случае все зависит от того, имеете ли вы в виду быстрее всего писать или быстрее всего выполнять?
Если первое и предполагается, что есть верхний предел, вы можете просто использовать что-то вроде:
void outSpaces (unsigned int num) {
static char *lotsaSpaces = " ";
printf ("%*.*s", num, num, lotsaSpaces);
}
Если последнее, что-то вроде этого должно быть хорошей отправной точкой:
void outSpaces (unsigned int num) {
static char *hundredSpaces = "<<insert 100 spaces here>>";
while (num >= 100) {
puts (hundredSpaces);
num -= 100;
}
printf ("%*.*s", num, num, hundredSpaces);
}
Вы должны знать, что вызовы функций могут быть дорогими, даже с буферизацией вывода. В этом случае лучше всего один раз вызвать puts
, чтобы вывести сто символов, а не сто раз putchar
.