프로그래밍/C++
C++ ] string -> char *, char * -> string 변환
eteo
2024. 2. 18. 22:08
C스타일 문자열 char *에서 string으로 변환하거나 반대로 변환하는 법
char * to string
const char *pChar ="hello";
string str = pChar;
또는
string str(pChar);
char *에서 string으로 바꾸는건 간단하다. = 연산자를 통해 초기화하거나 생성자를 통해 초기화하면 된다.
sring to char *
string str = "hello";
const char *pChar = str.c_str();
또는
char buf[str.length() + 1];
strcpy(buf, str.c_str());
string에서 char *로 변환할 때는 string의 수명에 주의해야한다.
위의 변환 방법 중 첫번째 방법의 경우 string 변수가 스코프를 벗어나게 되면 const char 포인터는 더이상 유효하지 않은 메모리를 가리키게 될 수 있다.
따라서 C스타일 문자열을 조작해야 하는 경우나 string 변수로부터 독립적으로 메모리 확보하고 쓰기 위해 두번째 방법처럼 strcpy를 사용해 버퍼에 복사하는 방식을 사용할 수 있다.