Функция 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
в качестве параметра?