C++

[C++] string 클래스의 멤버함수 : c_str()

kugnuoy 2024. 2. 2. 11:49

c_str() 함수는 string class의 멤버 함수이다.

c언어에는 string을 '문자의 배열' 인 문자열로만 표현 가능하다.

c++에만 존재하는 string 자료형을 c_str() 을 통해 c style의 문자열로 변환하는 함수가 c_str()이다.

string CPP = "hello";
char C[6] = "hello";

 

두 문자열 모두 cout에서 정상적으로 출력되어 hellohello 가 출력된다.

cout << CPP << C;

 

하지만 string 문자열 CPP는 printf로 출력할 수 없다.

printf("%s %s", CPP, C);	// error

 

이 때 CPP를 c style의 문자열로 변환해주어야 하는데 c_str()을 사용하면 printf로 출력이 가능하다.

printf("%s %s", CPP.c_str(), C);

 

 

즉, c_str() 함수는 c++ style string을 c style string으로 변환하여 첫 문자의 주소를 반환한다.

CPP.c_str()은 C와 같고 &C[0]와 같다.

이를 응용하면 다음과 같이 포인터에서 활용할 수 있다.

char *p = CPP.c_str();