내장 Null이 포함된 문자열 리터럴에서 std::string을 구성하는 경우 "std::string my_string("a\0b");"와 같은 문자인 경우 결과 문자열에는 첫 번째 문자만 나타날 수 있습니다. 이 문제를 해결하기 위해 사용되는 C 버전에 따라 다양한 접근 방식을 사용할 수 있습니다.
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.
C 14 이전에 char*를 사용하는 std::string 생성자는 입력이 C 문자열이라고 가정합니다. null로 종료됩니다. 이를 보완하려면 char 배열과 해당 길이를 허용하는 다른 생성자를 사용해야 합니다.
C 문자열과 달리 C의 std::string은 null로 끝나지 않는다는 점에 유의하는 것이 중요합니다. 그러나 c_str() 메서드는 null로 끝나는 C 문자열 표현을 포함하는 내부 버퍼에 대한 포인터를 제공할 수 있습니다.
위 내용은 C에서 Null 문자가 포함된 `std::string`을 어떻게 만들 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!