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를 사용해 버퍼에 복사하는 방식을 사용할 수 있다.
'프로그래밍 > C++' 카테고리의 다른 글
C++ ] std::pair 사용법 (0) | 2024.03.01 |
---|---|
C++ ] std::sort 사용법 with 람다식 (0) | 2024.02.20 |
C++ 에서 구조체와 클래스의 차이 (0) | 2024.02.14 |
C++ ] 벡터의 최대값과 최소값 찾기, max_element, min_element (0) | 2024.02.10 |
Win32 API ] 윈도우 프로그램의 기본 구조 (0) | 2023.12.13 |