[C] sprintf 로 원하는 형식대로 문자열 저장하기
카테고리: C
태그: Cpp C Programming
🚀 sprintf
소개
#include <stdio.h>
printf
함수처럼 원하는 형식 포맷으로 문자열을 저장할 수 있다. printf
는 콘솔창에 어떤 포맷으로 출력할 것인지를 다루는 함수라면, sprintf
는 문자열(C언어 함수이니 char 배열!) 을 어떤 포맷으로 저장할 것인지를 다루는 함수이다.
문자열을 다루는 코딩테스트 문제를 푸는데 있어 매우 유용하게 사용될 것 같아 정리한다. C++ 로 풀이를 할 때 string
에 char 배열
을 그냥 대입하면 자동 변환이 된다는 것을 기억하자.
🚀 sprintf
예시
%[플래그(flag)][폭(width)][.정밀도][크기(length)]서식 문자(specifier)
🔥 예시 1
int main(){
char buf[100] = "";
int i = 123;
double d = 3.14;
sprintf(buf, "%05d.png %f", i, d); // buf = "00123.png 3.140000"
string str = buf; // C++ string 변환
cout << str << endl;
}
💎출력💎
00123.png 3.140000
위와 같이 sprintf를 사용하여, int
인 i와 double
인 d를 함께 사용하여 char 배열인 문자열 buf에 "00123.png 3.140000" 형태로 저장할 수 있었다.
🔥 예시 2
int main()
{
int seconds = 18768;
char c_time[20];
sprintf(c_time, "%02d시간 %02d분 %02d초", seconds / 3600, seconds / 60 % 60, seconds % 60);
string time = c_time; // C++ string 변환
cout << time << endl;
}
💎출력💎
5시간 12분 48초
🚀 참고
🌜 개인 공부 기록용 블로그입니다. 오류나 틀린 부분이 있을 경우
언제든지 댓글 혹은 메일로 지적해주시면 감사하겠습니다! 😄
댓글 남기기