[C] sprintf 로 원하는 형식대로 문자열 저장하기

Date:     Updated:

카테고리:

태그:

🚀 sprintf 소개

#include <stdio.h>

printf 함수처럼 원하는 형식 포맷으로 문자열을 저장할 수 있다. printf는 콘솔창에 어떤 포맷으로 출력할 것인지를 다루는 함수라면, sprintf는 문자열(C언어 함수이니 char 배열!) 을 어떤 포맷으로 저장할 것인지를 다루는 함수이다.

문자열을 다루는 코딩테스트 문제를 푸는데 있어 매우 유용하게 사용될 것 같아 정리한다. C++ 로 풀이를 할 때 stringchar 배열을 그냥 대입하면 자동 변환이 된다는 것을 기억하자.


🚀 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초


🚀 참고



🌜 개인 공부 기록용 블로그입니다. 오류나 틀린 부분이 있을 경우 
언제든지 댓글 혹은 메일로 지적해주시면 감사하겠습니다! 😄

맨 위로 이동하기

C 카테고리 내 다른 글 보러가기

댓글 남기기