char buffer[64]
과 uint32_t length
이 있고 buffer
이 null로 끝나는 수도 있고 그렇지 않을 수도 있습니다. 널 종료 (null)로 끝나면 나머지 버퍼는 널 (NULL)로 채워집니다. length
변수는 버퍼의 길이를 보유합니다.버퍼 또는 C 문자열을 std :: string으로 복사하는 가장 빠른 방법
std::string
문자열 개체 끝에 추가 null없이 복사하고 싶습니다.
원래 I 시도 :
std::string s(buffer, length);
복사하는 버퍼 끝에 널 가득 여분 널이.
내가 생각할 수 :
char buffer2[128];
strncpy(buffer2, buffer, 128);
const std::sring s(buffer2);
그러나 그것 때문에 사본을 두 번 가지 낭비입니다.
더 빠른 방법이 있는지 궁금합니다. 정확히 어떤 방법이 더 빠른지 알려면 벤치 마크해야한다는 것을 알고 있습니다 ...하지만 다른 솔루션을보고 벤치마킹하고 싶습니다 ...
미리 감사드립니다.
나는 불행하게도 마지막에 '\ 0'을 추가 할 수 없습니다 걸릴. 귀하의 대안 솔루션은 훌륭합니다. 감사! – Hei