개요
이 글에서는 숫자(정수, 실수 등 모든 숫자형 데이터)를 문자열로 변환하는 방법을 알아보겠습니다.
변환 로직은 매우 간단합니다. 핵심은 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("\nYou have entered: %s", str);
}
실행 결과
Enter a number: 46.3258
You have entered: 46.325802
참고 사항
%f 서식 지정자는 기본적으로 소수점 이하 6자리까지 표시하기 때문에, 입력값 46.3258이 "46.325802"처럼 출력된 것입니다. 소수 자릿수를 조절하고 싶다면 "%.2f"와 같이 정밀도를 직접 지정하면 됩니다.
또한 실무 환경에서는 지정된 버퍼 크기를 초과하는 데이터로 인한 버퍼 오버플로우를 방지하기 위해, 버퍼 크기를 함께 전달하는 snprintf() 함수를 사용하는 것이 더 안전합니다.