Чистая версия байтов strstr?

Существует ли версия strstr, который работает по фиксированной длине памяти, которая может включать нулевые символы?

Я мог формулировать свой вопрос как это: strncpy к memcpy, как strstr к?

12
задан hippietrail 19 April 2011 в 18:51
поделиться

3 ответа

memmem, к сожалению, это GNU-специфический, а не стандартный C. Однако, это открытый исходный текст, так что вы можете скопировать код (если лицензия вам подойдет)

.
15
ответ дан 2 December 2019 в 06:45
поделиться

Не в стандартной библиотеке (которая не так уж и велика, так что посмотрите). Однако писать свою собственную - тривиально, либо непосредственно байт за байтом, либо используя memchr() с последующим итеративным использованием memcmp().

.
8
ответ дан 2 December 2019 в 06:45
поделиться

В стандартной библиотеке нет. Однако быстрый поиск в Google по "безопасной библиотеке c string" приводит к нескольким потенциально полезным результатам. Не зная больше о задаче, которую вы пытаетесь выполнить, я не могу порекомендовать какую-либо конкретную стороннюю реализацию.

Если это единственная "безопасная" функция, которая вам нужна за пределами стандартных функций, то, возможно, лучше откатить свою, чем тратить усилия на интеграцию сторонней библиотеки, при условии, что вы уверены, что сможете это сделать без внесения дополнительных ошибок.

.
0
ответ дан 2 December 2019 в 06:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: