이 글에서는 C++에서 정수(int)를 문자열(string)로 변환하는 방법을 알아봅니다.
변환 로직은 매우 간단합니다. 핵심은 sprintf() 함수입니다. 이 함수는 값을 콘솔 화면이 아닌 문자열 버퍼에 출력(저장)한다는 점만 printf()와 다릅니다. 첫 번째 인자는 변환된 데이터를 저장할 문자열 버퍼가 됩니다.
입력 및 출력 형식
입력: 사용자가 숫자 값 입력 (예: 42) 출력: 해당 숫자의 문자열 표현 반환 (예: "42")
알고리즘
- 사용자로부터 숫자를 입력받습니다.
- 결과를 저장할 빈 문자열 버퍼를 생성합니다.
- sprintf() 함수를 사용해 숫자를 문자열로 변환합니다.
- 프로그램을 종료합니다.
예제 코드
#include<stdio.h>
main() {
char str[20]; // 숫자를 저장할 빈 문자열 생성
int number;
printf("Enter a number: ");
scanf("%d", &number);
sprintf(str, "%d", number); // sprintf 함수로 숫자를 문자열로 변환
printf("You have entered: %s", str);
}실행 결과
Enter a number: 46 You have entered: 46
참고: C++11 이상에서는 std::to_string() 활용
C++11부터는 <string> 헤더의 std::to_string() 함수를 사용하면 더욱 간결하고 안전하게 변환할 수 있습니다. 별도의 문자열 버퍼 크기를 관리할 필요가 없어 버퍼 오버플로 위험도 줄어듭니다.
#include<string> int number = 42; std::string str = std::to_string(number); // 숫자를 문자열로 변환
전통적인 C 스타일 코드와의 호환이 필요하다면 sprintf()를, 모던 C++ 환경이라면 std::to_string()을 사용하는 것이 좋습니다.