应为“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()
。
关于c - 警告在没有强制转换的情况下从指针生成整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53082561/