C++에서 단일 문자(char)를 문자열(string)로 변환해야 하는 경우가 종종 있습니다. 다행히 이를 수행하는 방법은 여러 가지가 있으며, 각각의 상황과 선호도에 따라 적절한 방식을 선택할 수 있습니다.
이 글에서는 대표적인 세 가지 방법을 예제 코드와 함께 살펴보겠습니다.
예제 코드
#include <iostream>
#include<string>
#include<sstream>
int main() {
char c = 'm';
std::string s(1, c);
std::cout << "Using string constructor : " << s << '\n';
std::string s2;
std::stringstream s1;
s1 << c;
s1 >> s;
std::cout << "Using string stream : " << s << '\n';
s2.push_back(c);
std::cout << "Using string push_back : " << s2 << std::endl;
return 0;
}실행 결과
위 프로그램을 실행하면 다음과 같은 출력 결과를 확인할 수 있습니다.
Using string constructor : m Using string stream : m Using string push_back : m
방법별 설명
1. string 생성자 사용
가장 간결하고 널리 쓰이는 방법입니다. std::string의 생성자는 첫 번째 인자로 반복 횟수, 두 번째 인자로 문자를 받아 해당 문자가 반복되는 문자열을 생성합니다. 문자 하나를 변환할 때는 반복 횟수를 1로 지정하면 됩니다.
std::string s(1, c);
2. stringstream 사용
문자열 스트림을 활용하는 방법입니다. stringstream에 문자를 삽입(<<)한 뒤, 다시 문자열 변수로 추출(>>)하여 변환합니다. 숫자나 여러 타입의 데이터를 문자열로 조합할 때도 유용하게 활용됩니다.
std::string s2; std::stringstream s1; s1 << c; s1 >> s;
3. push_back 함수 사용
빈 문자열 객체에 push_back() 함수로 문자를 직접 추가하는 방식입니다. 기존 문자열의 끝에 문자를 덧붙일 때도 자주 사용되며, 직관적이라 가독성이 좋습니다.
s2.push_back(c);
마무리
세 가지 방법 모두 동일한 결과를 출력하지만, 일반적으로는 string 생성자를 사용하는 방법이 가장 간단하고 효율적이어서 권장됩니다. stringstream은 복잡한 형식 변환이 필요할 때, push_back은 기존 문자열에 문자를 추가할 때 활용하면 좋습니다.