From aldeid
Jump to navigation Jump to search


int sprintf ( char * str, const char * format, ... );


  • Composes a string with the same text that would be printed if format was used on printf, but instead of being printed, the content is stored as a C string in the buffer pointed by str.
  • The size of the buffer should be large enough to contain the entire resulting string (see snprintf for a safer version).
  • A terminating null character is automatically appended after the content.
  • After the format parameter, the function expects at least as many additional arguments as needed for format.


Pointer to a buffer where the resulting C-string is stored.
The buffer should be large enough to contain the resulting string.
C string that contains a format string that follows the same specifications as format in printf (see printf for details).
... (additional arguments)
Depending on the format string, the function may expect a sequence of additional arguments, each containing a value to be used to replace a format specifier in the format string (or a pointer to a storage location, for n).
There should be at least as many of these arguments as the number of values specified in the format specifiers. Additional arguments are ignored by the function.

Return Value

  • On success, the total number of characters written is returned. This count does not include the additional null-character automatically appended at the end of the string.
  • On failure, a negative number is returned.


Source Output
#include <stdio.h>

int main(int argc, char *argv[])
  char string[100];
  char *colors[] = {"blue", "green", "yellow", "purple"};
  int len = sizeof(colors) / sizeof(colors[0]);
  int i = 0;

  for (i=0; i<len; i++) {
    sprintf(string, "My favorite color is '%s'.\n", colors[i]);

  return 0;
My favorite color is 'blue'.
My favorite color is 'green'.
My favorite color is 'yellow'.
My favorite color is 'purple'.