ожидается "int", но аргумент имеет тип "char *" не знаю, как исправить, любое предложение
#include <stdio.h>
int my_strncmp(char const *s1, char const *s2, int n);
int main (int ac, char **ag) {
char result;
if (ac == 4) {
result = my_strncmp(ag[1], ag[2], ag[3]);
printf("%d\n", result);
}
return(0);
}
Вам необходимо преобразовать ag[3]
(типа char *
/ string) в целое число.
Взгляните на strtol()
и его собратьев. С atoi()
существует более простая функция, которая, однако, не такая надежная и универсальная. Вот почему я бы рекомендовал всегда использовать strtol()
и др.
Примечание: параметры "n
" обычно делаются size_t
(без знака) вместо int
. (Сравните strncmp()
). Тогда вы бы использовали strtoul()
.
Последний параметр my_strncmp определяется как int n, но когда он вызывается в main, третий параметр имеет тип char *
здесь,
int my_strncmp(char const *s1, char const *s2, int n);
последняя часть - int n
result = my_strncmp(ag[1], ag[2], ag[3]);
но здесь то, что вы передаете ag[3]
, имеет тип char
надеюсь это поможет..