我想检查用户输入是否只包含数字。所以,我使用以下代码:
for(i = 0; argv[1][i] != NULL; i++)
if(!isdigit(argv[1][i]))
{
printf("Error");
return -1;
}
效果很好,但我收到了这个警告:
warning: comparison between pointer and integer [enabled by default]
因为argv[1][i]
是一个整数,NULL
是一个指针。我该如何避免这种警告?
答案 0 :(得分:14)
NULL
与null-terminator字符不同。您应该使用'\0'
代替。
答案 1 :(得分:3)
argv [1] [i]是一个字符,只需将它与'\ 0'或0进行比较,就会更清楚。
答案 2 :(得分:1)
对于字符比较,可以使用(或者只使用0);
for(i = 0; argv[1][i] != '\0'; i++)