Содержание | Глава 13

Функция sprintf

#include <stdio.h>
int sprintf(char *buf, const char *format, ...);

Функция sprintf() идентична функции printf() за исключением того, что поток вывода записывается в массив, адресуемый указателем buf, а не в стандартный поток stdout. По окончании работы функции этот массив будет завершаться символом конца строки (нуль-символом). Подробности рассматриваются в разделе, посвященном описанию функции printf.

В версии C99 к параметрам buf и format применен квалификатор restrict.

Возвращаемое значение равно числу символов, действительно помещенных в массив.

Важно понимать, что функция sprintf() не обеспечивает никакой проверки переполнения массива, адресуемого указателем buf. Это значит, что массив будет переполнен, если объем выводимых символов превысит длину массива. В качестве альтернативного решения рассмотрите применение функции snprintf().

Пример

После выполнения этого фрагмента программы элементам массива str значения будут присвоены таким образом, что получится строка:

один 2 3
char str[80];

sprintf(str, "%s %d %c", "один", 2, '3');

Зависимые функции

printf() fsprintf()
Содержание | Глава 13