STL 문자열에서 c_str()과 data()의 차이점 이해
STL에서 c_str()과 data()의 차이점 문자열은 다양한 구현으로 인해 종종 질문을 제기합니다. 일부에서는 c_str()이 Null 종료를 보장하고 data()는 그렇지 않다고 주장하지만 실제 동작은 다를 수 있습니다.
Null 종료와 Non-Null 종료
이론적으로 c_str()은 null로 끝나는 문자열을 반환합니다. 즉, 끝에 추가 null 문자가 포함됩니다(C의 ' '와 동일). 이는 문자열이 이런 방식으로 종료될 것으로 예상하는 기존 C 함수와 인터페이스하는 데 필수적입니다. 이와 대조적으로 data()는 기본 문자 배열에 대한 포인터를 반환하지만 반드시 null 종료를 보장하지는 않습니다.
구현 세부 정보
그러나 실제로 일부 구현에서는 내부적으로 c_str()을 호출하여 data()를 구현합니다. 이러한 경우 두 기능 모두 사실상 동일하게 작동합니다. 명확한 설명을 위해 특정 구현 문서를 참조하는 것이 중요합니다.
언제 어떤 함수를 사용해야 하는지
일반적으로 경험 법칙은 다음과 같습니다.
C 11 및 그 이상
C 11부터 표준화 변경 사항이 도입되었습니다. 이제 data()가 필요합니다. null로 끝나는 문자열을 반환하여 기능상 c_str()과 동일하게 만듭니다.
위 내용은 STL 문자열에 대해 언제 c_str()과 data()를 사용해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!