728x90
printf는 화면에 출력하는 함수이다.
sprintf는 출력 결과를 문자열 변수(버퍼)에 저장하는 함수이다.
int sprintf(char *str, const char *format, ...);
str : 결과를 저장할 문자 배열
format : 출력 형식 문자열 (%d, %s, %x 등 사용 가능)
... : 실제 넣을 값들
반환 값은 저장된 문자열의 길이이다.
예제
#include <stdio.h>
int main() {
char buffer[100];
int age = 23;
// 문자열을 buffer 안에 저장
sprintf(buffer, "저는 %d살 입니다.", age);
// buffer에 저장된 내용을 출력
printf("buffer 내용 %s\n", buffer);
return 0;
}
출력 결과
sprintf는 화면에 직접 출력하지 않고, 문자열을 buffer 안에 저장한다는 것이다.
sprintf는 버퍼 크기를 전혀 확인하지 않는다.
너무 긴 문자열을 넣을 경우에는 버퍼 오버플로우가 발생한다는 것이다.
728x90