std::string을 const char*나 char*로 바꾸는 방법


std::stringconst char*char*로 바꾸는 방법 좀 알려주세요

  • 2016년 01월 05일에 작성됨

조회수 1151


1 답변


좋아요
0
싫어요
채택취소하기

const char*을 파라미터로 쓰는 함수를 쓰고 싶으신 거면 다음과 같은 방법이 있습니다

std::string str = "I want to convert string to char*";;
const char * c = str.c_str();

이 경우에는 const이기 때문에 수정은 못하지요.

수정할 수 있게 하려면(char*처럼) 다음과 같은 방법이 있습니다.

std::string str = "I want to convert string to char*";;
char * writable = new char[str.size() + 1];
std::copy(str.begin(), str.end(), writable);
writable[str.size()] = '\0'; // 스트링 끝에 0을 추가해주는 거 잊지 마세요
delete[] writable;

다만 이 방법은 메모리 누수가 생길 수 있으니까 밑에걸 쓰시는게 좋아요. 이건 다른 라이브러리가 필요 없는 standard한 방법입니다 메모리를 알아서 관리해주지요

std::string str = "I want to convert string to char*";
std::vector<char> writable(str.begin(), str.end());
writable.push_back('\0');
char* ptr = &writable[0];
std::cout << ptr;
  • 2016년 01월 05일에 작성됨

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close