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 중국어 웹사이트의 기타 관련 기사를 참조하세요!