Функция strchr в стандартной библиотеке C ищет в строке char, но ее подпись принимает символ int для символа поиска. В этих двух реализациях, которые я нашел, реализация передает этот int в char:
char *strchr(const char *s, int c) {
while (*s != (char)c)
if (!*s++)
return 0;
return (char *)s;
}
char *strchr(const char *s, int c) {
while (*s && *s != (char)c)
s++;
if (*s == c)
return (char *)s;
return NULL;
}
Кто-нибудь знает, почему? Почему бы просто не взять char в качестве параметра?