>백엔드 개발 >C++ >C에서 std::string을 char* 또는 char[]로 변환하는 방법은 무엇입니까?

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

Susan Sarandon
Susan Sarandon원래의
2024-12-01 07:46:12874검색

How to Convert a std::string to a char* or char[] in C  ?

std::string을 char* 또는 char[]로 변환

std::string을 char* 또는 char[]로 변환 데이터 유형은 C에서 일반적인 작업일 수 있지만 자동 변환이 지원되지 않는다는 점은 주목할 가치가 있습니다. 이를 달성하기 위해 c_str() 메서드를 사용하여 std::string의 C 스타일 문자열 표현을 얻을 수 있습니다.

std::string str = "string";
const char *cstr = str.c_str();

c_str() 메서드는 const char 포인터를 반환하므로 상수가 아닌 포인터가 필요합니다. 대신 data() 메서드를 사용할 수 있습니다:

char *cstr = str.data();

대안 옵션:

c_str() 및 data()를 사용하는 것 외에도 std::string을 char*로 변환하는 다른 방법이 있습니다:

  • 문자를 벡터로 복사:

    std::vector<char> cstr(str.c_str(), str.c_str() + str.size() + 1);

    이 버전은 null 문자(' ') 종료.

  • 수동 메모리 관리(주의해서 사용):

    char *cstr = new char[str.size() + 1];
    std::strcpy(cstr, str.c_str());
    // do stuff
    delete [] cstr;

위 내용은 C에서 std::string을 char* 또는 char[]로 변환하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.