Можем ли мы удалить нулевой символ в конце CString? - PullRequest
0 голосов
/ 19 июня 2019

Можем ли мы удалить нулевой символ из CString.Я пытаюсь скопировать unsigned char и преобразовать его в CString.Но дополнительно добавляется нулевой символ.Их способ удалить это ???

Ответы [ 2 ]

1 голос
/ 19 июня 2019

Завершающий символ NUL технически не является частью CString. Он сохраняется, чтобы разрешить передачу CString в функцию, ожидающую строку в стиле C. Нет способа предотвратить это.

0 голосов
/ 19 июня 2019

Нет, это не имеет никакого смысла.CStringstd::string) представлены в виде реализаций строк с нулевым символом в конце в стиле C.Они были разработаны, чтобы ВСЕГДА иметь завершающий ноль.

Если вы хотите использовать что-то еще, попробуйте:

#include <vector>
std::vector<unsigned char> vectUnsignedChars;

С такой структурой вы можете добавлять данные, и они не будут добавлятьноль.Но если вы попытаетесь передать его в функцию, которая ожидает строки с нулевым символом в конце, ожидайте катастрофы.

...