std::string 변환

객체 전달 방식 기준

C 함수와 연결할 때만 `c_str()`을 사용하고, 그 밖의 조작은 `std::string` 멤버 함수에 맡깁니다.

소유 문자열 객체가 메모리를 관리
변환 `c_str()`은 읽기용 포인터 제공
수명 객체 변경과 소멸에 함께 영향

std::string s

대입, 비교, 이어 붙이기, 검색을 안전하게 처리합니다.

s.c_str()

C API 호출 직전에 `const char*`로 잠시 노출합니다.

변경 전 사용

포인터를 얻은 뒤 문자열을 수정하면 이전 포인터를 계속 쓰지 않습니다.

저장 금지

반환된 포인터를 장기간 저장하기보다 필요한 호출 지점에서 다시 얻습니다.

복사 필요

C 쪽에서 오래 보관해야 한다면 별도 버퍼로 복사하고 수명을 관리합니다.

실전 기준

문자열을 직접 조작하는 코드는 `std::string`에 두고, C 스타일 포인터는 호환이 필요한 경계에서만 사용하면 안전성이 높아집니다.