Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++에서 std::string을 const char* 또는 char*로 변환하는 방법은 무엇입니까?


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