이 섹션에서는 C++ 문자열(std::string)을 const char* 또는 char*로 변환하는 방법을 볼 것입니다. 이러한 형식은 C 스타일 문자열입니다. c_str()이라는 함수가 있습니다. 이것은 우리가 작업을 수행하는 데 도움이 될 것입니다. 문자열 개체의 현재 값을 나타내는 null로 끝나는 문자 시퀀스(즉, C-문자열)를 포함하는 배열에 대한 포인터를 반환합니다.
다음은 std::string::c_str에 대한 선언입니다.
const char* c_str() const;
이 함수는 문자열 개체의 현재 값을 나타내는 null로 끝나는 문자 시퀀스(즉, C 문자열)를 포함하는 배열에 대한 포인터를 반환합니다. 예외가 발생하면 문자열에 변경 사항이 없습니다.
예시 코드
#include <iostream>
#include <cstring>
#include <string>
int main () {
std::string str ("Please divide this sentence into parts");
char * cstr = new char [str.length()+1];
std::strcpy (cstr, str.c_str());
char * p = std::strtok (cstr," ");
while (p!=0) {
std::cout << p << '\n';
p = std::strtok(NULL," ");
}
delete[] cstr;
return 0;
} 출력
Please divide this sentence into parts