Я делаю что-то в C, которое требует использования строк (как это делает большинство программ).
Посмотрев в manpages, я нашел, в строке (3):
СИНТАКСИС
#include <strings.h> char * index(const char *s, int c) (...) #include <string.h> char * strchr(const char *s, int c)
Поэтому я с любопытством посмотрел как на strchr (3), так и на индекс (3)...
И я обнаружил, что оба делают следующее:
Функция strchr()/index() обнаруживает первое вхождение c в строку на которые указывает s. Конечный нулевой символ считается частью строка; поэтому, если c - '\ 0', то функции располагают завершающим '\ 0'.
Итак, manpage - это в основном копия и вставка.
Кроме того, я полагаю, что из-за некоторой запутанной необходимости второй параметр имеет тип int
, но на самом деле a char
. Я думаю, что я не ошибаюсь, но может ли кто-нибудь объяснить мне, почему это int
, а не char
?
Если они оба одинаковы, какая из них более совместима в разных версиях, а если нет, какая разница?