В качестве другой функции библиотеки C, например strcpy
, strcat
, существует версия, которая ограничивает размер строки (strncpy
и т.д.), мне интересно, почему такой вариант для strchr
?
Почему нет функции strnchr?
Ответ 1
Он существует - он называется memchr
:
Ответ 2
В C термин "строка" обычно означает "нулевой конец массива символов", а функции str*
работают с этими типами строк. n
в функциях, которые вы упоминаете, в основном для управления выходом.
Если вы хотите работать с произвольной последовательностью байтов без какой-либо подразумеваемой семантики термина, используйте семейство функций mem*
; в вашем случае memchr
должен отвечать вашим потребностям.