c++에서 char형에서 string으로 바꾸는 방법을 간단하게 소개해 드리겠습니다.

 


 먼저, string의 생성자를 이용하는 방법입니다. 이 문서에서는 6번째 방법으로 생성한 것입니다. 앞에 있는 n은 몇 번 반복할 것인가를 의미합니다. 다음에 2번째는 char형이 오게 됩니다. 1번째 예제는 char형 'A'를 문자열 "A"로 바꾼다는 것입니다. 그러기 위해서는, 'A'라는 문자열이 1번만 반복되면 됩니다.

 

 따라서 7번째 줄처럼 string k2 = string(1, ch); 로 생성해 주면 됩니다. 여기서 ch는 'A'였습니다.

 

 결과를 볼까요? 길이는 1이고, "A"라는 string이 생성되었음을 볼 수 있습니다.

 

 

 만약에 string(2, 'C'); 라 하면 어떤 문자열이 생성될까요? 'C'가 2번 반복된 k2가 생성될 겁니다.

 

 결과를 보니 정말 그러하다는 것을 알 수 있습니다.

 

 빈 문자열을 생성한 다음에, character 하나 더하는 방법도 있습니다. 이 문서를 보면 3번째에 character도 덧붙일 수 있다고 나옵니다. 이 말인 즉슨, 캐릭터 하나도 붙일 수 있다는 것을 의미해요. 저는 string k2; 로 빈 문자열을 하나 생성했습니다. 그리고 여기에 ch를 덧붙였습니다. 그렇게 해도 char형을 string으로 변환할 수 있습니다.

 

 

 실행 결과는 문자열 "D"가 나옵니다.

 

 빈 문자열의 0번째 원소에 character 하나를 넣은 다음에 char형 배열을 string의 생성자로 넘기는 방법도 있습니다. 위 코드는 그 방법대로 생성한 것입니다.

 

 실행 결과는 문자열 "B"가 생성되었다고 나오는군요. string(1, 'B')라던지, 빈 문자열에서 char 하나를 append 하는 방법보다는 간단하진 않으니, 빈 문자열에 append를 시키는 방법이나, 문자를 n번 반복시키는 생성자를 외워두는 편이 좋겠습니다.

 

 


 반대로, 길이 1짜리인 문자열을 character형으로 바꾸려면 어떻게 하는 게 좋을까요?

 

 이 경우, at이라는 메서드를 이용하면 됩니다. s.at(index)는 string s의 index번째에 있는 문자 하나를 뽑아옵니다. 이 예제는 문자열 k2가 "a"를 의미해요. 여기서 0번째에 있는 문자를 하나 뽑아오니까, 'a'를 가져올 겁니다. 이제, 뽑아온 문자열을 출력해 주면 됩니다. 저 경우 'a'가 나올 겁니다.

 

 정말 그런지 확인해 보니 a가 출력되었음을 알 수 있습니다.