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();
'C++' 카테고리의 다른 글
[C++] 벡터,배열 복사하기 : copy() (0) | 2024.02.02 |
---|---|
[C++] 배열 초기화 함수 : fill(), memset(), {0, } (0) | 2024.02.02 |
[C++] bitset 라이브러리 (0) | 2024.01.17 |
[C++] cmath (0) | 2024.01.17 |
[C++] 심볼릭 상수 (Symbolic Constant) (0) | 2024.01.16 |