이 섹션에서는 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