Копирование строки с нулями внутри - PullRequest
0 голосов
/ 14 февраля 2011

Я хочу скопировать строку в C (Windows), которая содержит нули. Мне нужна функция, которой я передам длину буфера, чтобы символы NULL были бессмысленными. Я нашел функцию StringCbCopy, но она по-прежнему останавливается на первом символе NULL.

Ответы [ 3 ]

14 голосов
/ 14 февраля 2011

Поскольку вы знаете длину, используйте memcpy().

1 голос
/ 15 февраля 2011

Вот небольшой фрагмент кода, который может помочь:

char array1[5] = "test", array2[5];
int length = 5;
memcpy(array2, array1, length*sizeof(char));
//the sizeof() is redundant in this because each char is a byte long
//but it is useful if you are working with other datatypes

memcpy, вероятно, станет вашим лучшим другом в подобных ситуациях.

0 голосов
/ 14 февраля 2011

Должно быть очень легко написать собственную функцию для этого. Если вы знаете длину строки, просто создайте char [] или char * с указанной длиной и копируйте символы один за другим.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...