> 백엔드 개발 > C++ > C에서 Null 문자가 포함된 `std::string`을 어떻게 만들 수 있나요?

C에서 Null 문자가 포함된 `std::string`을 어떻게 만들 수 있나요?

Mary-Kate Olsen
풀어 주다: 2024-11-29 08:06:10
원래의
703명이 탐색했습니다.

How Can I Create a `std::string` Containing Embedded Null Characters in C  ?

내장 Null을 사용하여 std::string 생성: 심층 조사

내장 Null이 포함된 문자열 리터럴에서 std::string을 구성하는 경우 "std::string my_string("a\0b");"와 같은 문자인 경우 결과 문자열에는 첫 번째 문자만 나타날 수 있습니다. 이 문제를 해결하기 위해 사용되는 C 버전에 따라 다양한 접근 방식을 사용할 수 있습니다.

C 14 이상

C 14 이상에서는 문자열 리터럴이 포함된 Null을 포함하는 문자를 나타내는 기능을 얻었습니다. . 문자열 리터럴에 접미사 "s"를 추가하면 C 문자열 리터럴이 아닌 std::string 리터럴로 처리될 수 있습니다. 예:

std::string s = "pl-<pre class="brush:php;toolbar:false">std::string   x("pq\0rs");   // Two characters because input assumed to be C-String
std::string   x("pq\0rs",5); // 5 Characters as the input is a char array with 5 characters.
로그인 후 복사
-op"s; // Notice the "s" at the end.

C 14 이전 솔루션

C 14 이전에 char*를 사용하는 std::string 생성자는 입력이 C 문자열이라고 가정합니다. null로 종료됩니다. 이를 보완하려면 char 배열과 해당 길이를 허용하는 다른 생성자를 사용해야 합니다.

C 문자열과 달리 C의 std::string은 null로 끝나지 않는다는 점에 유의하는 것이 중요합니다. 그러나 c_str() 메서드는 null로 끝나는 C 문자열 표현을 포함하는 내부 버퍼에 대한 포인터를 제공할 수 있습니다.

위 내용은 C에서 Null 문자가 포함된 `std::string`을 어떻게 만들 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿