Computer >> 컴퓨터 >  >> 프로그래밍 >> C 프로그래밍

C 언어에서 숫자를 문자열로 변환하는 방법 – sprintf() 함수 완벽 가이드

이 글에서는 C 언어에서 숫자(정수, 실수 등 모든 숫자형 데이터)를 문자열로 변환하는 방법을 알아보겠습니다.

변환 로직은 매우 간단합니다. 핵심은 sprintf() 함수입니다. 이 함수는 값을 콘솔 화면에 출력하는 대신 문자열 버퍼에 저장하는 역할을 합니다. 이것이 바로 printf()와 sprintf()의 유일한 차이점입니다. sprintf()의 첫 번째 인수는 변환된 데이터를 저장할 문자열 버퍼가 됩니다.

입력: 사용자가 숫자 값 입력 (예: 42.26)
출력: 해당 숫자와 동일한 문자열 반환 (예: "42.26")

알고리즘

1단계 − 사용자로부터 숫자를 입력받는다
2단계 − 결과를 저장할 빈 문자열 버퍼를 생성한다
3단계 − sprintf()를 사용해 숫자를 문자열로 변환한다
4단계 − 종료한다

예제 코드

#include<stdio.h>
main() {
    char str[20]; // 숫자를 저장할 빈 문자열 생성
    float number;
    printf("Enter a number: ");
    scanf("%f", &number);
    sprintf(str, "%f", number); // sprintf 함수로 숫자를 문자열로 변환
    printf("You have entered: %s", str);
}

실행 결과

Enter a number: 46.3258
You have entered: 46.325802

참고 사항

%f 형식 지정자는 기본적으로 소수점 이하 6자리까지 출력하므로, 위 예제에서 46.3258이 46.325802처럼 표시되는 것은 정상적인 동작입니다. 원하는 자릿수만 출력하려면 sprintf(str, "%.2f", number)처럼 정밀도를 지정하면 됩니다.

또한 실무 환경에서는 버퍼 오버플로우를 방지하기 위해 저장 크기를 제한할 수 있는 snprintf() 함수를 사용하는 것이 더 안전합니다. snprintf()는 두 번째 인수로 버퍼의 최대 크기를 받아 초과写入을 방지합니다.