2011-12-08 66 views
4

我想檢查用戶輸入是否只包含數字。所以,我用下面的代碼:警告:在c中指針和整數[默認啓用]之間的比較

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是一個指針。我怎樣才能避免這種警告?

回答

14

NULL與空終止字符不一樣。您應該改用'\0'

+0

+1很好,它的工作原理。 –

+0

+1,工作正常,謝謝 – HenryChuang

1

對於字符比較,可以使用這個(或者只是0)。

for(i = 0; argv[1][i] != '\0'; i++) 
3

argv [1] [i]是一個字符,只是將它與'\ 0'或0進行比較,就會更清楚。

相關問題