728x90
sprintf()
- 정수를 문자열로 변환 가능
- 헤더 : stdio.h
- sprintf(문자열, "%d", 정수);
- sprintf(문자열, "%x", 정수);
- sprintf(문자열, "%X", 정수);
- sprintf(문자열, "%f", 실수);
* (참고) %e : 지수표기법
#define _CRT_SECURE_NO_WARNINGS // sprintf 보안 경고로 인한 컴파일 에러 방지
#include <stdio.h> // sprintf 함수가 선언된 헤더 파일
int main()
{
char s1[10]; // 변환한 문자열을 저장할 배열
int num1 = 283; // 283은 정수
sprintf(s1, "%d", num1); // %d를 지정하여 정수를 문자열로 저장
printf("%s\n", s1); // 283
return 0;
}
sprintf_s()
-
버퍼에 포멧을 지정하여 출력하는 함수
-
헤더 : stdio.h
-
int sprintf_s(char* buffer, size_t size, const char* format, ...);
- buffer : 출력할 버퍼
- size : 버퍼 크기
- format : 포멧 문자열
- ... : 가변 인자 리스트
//int sprintf_s(char * buffer, const char * format, ...); 버퍼에 포멧을 지정하여 출력하는 함수
//이름, 번호, 등급을 버퍼에 출력한 후 버퍼의 내용을 표준 입력 스트림에 출력
#include <stdio.h>
int main(void)
{
char buffer[256];
char name[20] = "홍길동";
int num = 23;
double level = 2.37;
//버퍼에 이름, 번호, 등급을 출력
sprintf_s(buffer,sizeof(buffer), "이름: %s 번호:%d 등급: %f", name, num, level);
//버퍼를 표준 입력 스트림에 출력
puts(buffer);
return 0;
}
sprintf()와 sprintf_s()의 차이점
- sprintf 함수는 버퍼의 크기를 전달하지 않아서 함수 내부에서는 버퍼의 크기를 알 수가 없음
728x90
'고흐의 연구실 > C언어와 C++' 카테고리의 다른 글
[C언어] math.h 함수 sqrt(), pow(), abs(), fabs(), fabsf() (0) | 2020.08.09 |
---|---|
[C언어] 문자열 함수 정리 (0) | 2020.08.09 |
[C언어] 문자열을 수로 변환 atoi(), strtol(), atof(), strtof(), strtod() (0) | 2020.08.09 |
[C언어] 문자열 자르기 strtok() (0) | 2020.08.08 |
[C언어] 문자열 검색 sprintf(), strchr(), strrshr(), strstr() (0) | 2020.08.07 |