Почему нет функции strnchr?

В качестве другой функции библиотеки C, например strcpy, strcat, существует версия, которая ограничивает размер строки (strncpy и т.д.), мне интересно, почему такой вариант для strchr?

Ответ 2

В C термин "строка" обычно означает "нулевой конец массива символов", а функции str* работают с этими типами строк. n в функциях, которые вы упоминаете, в основном для управления выходом.

Если вы хотите работать с произвольной последовательностью байтов без какой-либо подразумеваемой семантики термина, используйте семейство функций mem*; в вашем случае memchr должен отвечать вашим потребностям.