我想检查用户input是否只包含数字。 所以,我使用下面的代码:
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
是一个指针。 我怎样才能避免这样的警告?
NULL
与null结束符不同。 您应该使用'\0'
。
argv [1] [i]是一个字符,只是比较它与'\ 0'或0,它是更清晰。
对于字符比较,可以使用(或者只是0)。
for(i = 0; argv[1][i] != '\0'; i++)