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

C++에서 std::string과 int를 연결하는 방법 완벽 가이드

C++ 프로그래밍에서 문자열(std::string)과 정수(int) 타입의 데이터를 하나로 합쳐야 하는 경우가 자주 발생합니다. 이 글에서는 stringstream을 활용해 정수를 문자열로 변환한 뒤, 두 데이터를 연결하는 방법을 단계별로 알아보겠습니다.

왜 변환이 필요한가?

C++에서는 서로 다른 타입의 데이터를 + 연산자로 직접 연결할 수 없습니다. 따라서 정수를 먼저 문자열로 변환한 후에야 문자열과 이어 붙일 수 있습니다. stringstream은 숫자나 문자열을 받아 문자열 형태로 만들어 주는 편리한 기능을 제공합니다.

입력: 문자열 "str" 과 숫자 10
출력: 연결된 문자열 "str10"

알고리즘

1단계: 문자열과 숫자를 입력받는다
2단계: 숫자를 문자열로 변환한다
3단계: 두 값을 연결한다
4단계: 종료한다

예제 코드

아래 예제에서는 int_to_str() 함수를 통해 정수를 문자열로 변환합니다. stringstream 객체에 정수를 삽입(<<)한 뒤, str() 메서드로 결과 문자열을 얻어오는 방식입니다.

#include <iostream>
#include <sstream>
using namespace std;

string int_to_str(int x) {
    stringstream ss;
    ss << x;
    return ss.str();
}

int main() {
    string my_str = "This is a string: ";
    int x = 50;
    string concat_str;
    concat_str = my_str + int_to_str(x);
    cout << concat_str;
}

실행 결과

This is a string: 50

참고: 대안적인 방법들

stringstream 외에도 C++11부터는 std::to_string() 함수를 사용할 수 있습니다. 이 함수는 std::to_string(50)처럼 간단히 호출하여 정수를 문자열로 변환해 주므로, 코드가 더욱 간결해집니다. 또한 std::ostringstream이나 C 스타일의 sprintf()도 대안으로 활용할 수 있지만, 타입 안전성과 사용 편의성 측면에서 std::to_string()이 가장 권장됩니다.