std::string을 const char*나 char*로 바꾸는 방법
조회수 50310회
1 답변
-
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;
댓글 입력