预期为'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);
}
答案 0 :(得分:3)
您需要将ag[3]
(类型为char *
/字符串)转换为整数。
看看strtol()
及其弟兄们。使用atoi()
时,存在一个更简单的函数,但是它不那么健壮和通用。因此,我建议始终养成使用strtol()
等的习惯。
旁注,通常将n
(无符号)而不是size_t
设置为“ int
”参数。 (比较strncmp()
)。然后,您将使用strtoul()
。
答案 1 :(得分:0)
my_strncmp的最后一个参数定义为int n,但在main中调用时,第三个参数为char * type
答案 2 :(得分:0)
在这里
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类型的
希望这会有所帮助。