sprintf() — 형식화된 데이터를 버퍼로 출력

형식

#include <stdio.h>
int sprintf(char *buffer, const char *format-string, argument-list);

언어 레벨

ANSI

스레드세이프

로케일 감지

이 함수의 작동은 현재 로케일의 LC_CTYPE 및 LC_NUMERIC 범주에 영향을 받을 수 있습니다. 작동은 LOCALETYPE(*LOCALEUCS2) 또는 LOCALETYPE(*LOCALEUTF)가 컴파일 명령에서 지정되면 현재 로케일의 LC_UNI_CTYPE 범주에 영향을 받을 수도 있습니다. 자세한 정보는 CCSID 및 로케일 이해의 내용을 참조하십시오.

설명

sprintf() 함수는 배열 버퍼에 일련의 문자와 값의 형식을 지정하고 저장합니다. argument-list가 변환되며 format-string의 해당 형식 스펙에 따라 만들어집니다.

format-string은 일반 문자로 구성되고 printf() 함수에 대한 format-string 인수와 동일한 양식과 함수가 있습니다.

리턴값

sprintf() 함수는 끝 널 문자를 계산하지 않고 배열에 작성된 바이트 수를 리턴합니다.

이 예는 sprintf()를 사용하여 다양한 데이터의 형식을 지정하고 출력합니다.
#include <stdio.h>
 
char buffer[200];
int i, j;
double fp;
char *s = "baltimore";
char c;
 
int main(void)
{
   c = 'l';
   i = 35;
   fp = 1.7320508;
 
   /* Format and print various data */
   j = sprintf(buffer, "%s\n", s);
   j += sprintf(buffer+j, "%c\n", c);
   j += sprintf(buffer+j, "%d\n", i);
   j += sprintf(buffer+j, "%f\n", fp);
   printf("string:\n%s\ncharacter count = %d\n", buffer, j);
}
 
/*********************  Output should be similar to:  *************
 
string:
baltimore
l
35
1.732051
 
character count = 24           */