2014-10-22 76 views
0

我的程序正在接受一個說明應該使用多少個打印的參數。 自變量的示例:打印2. 然後,我想循環打印後的值,數字2,然後多次打印。我試過像這樣:在循環中比較字符與int

for(i = 0; i < argv[2]; i++) 
{ 
    .... 

問題是,argv是一個字符,我是一個int。所以當我運行這個循環時,argv [2]獲得的值是:123123123或其他東西,而不是2。有沒有什麼辦法解決這個問題,或者比較char中的值和int。在此先感謝

回答

3

argv [2]是char*不是char。 argv [2]指向一個字符串(以null結尾的字符數組)。當你向你傳遞一個參數時,參數就是這種形式。

您必須將其轉換,您可以使用atoi();

0

argv[2]char*,是C語言中的字符串,如果要將其更改爲int,則必須將它轉換爲 。將字符串轉換爲int。 下面是一個例子:

int atoi(char *str){//Just suit for int 
    int ans = 0,i=0; 
    while(str[i]){ 
     ans = ans*10 + (str[i]-'0'); 
     i++; 
    } 
    return ans; 
} 

你可以這樣調用atoi(argv[2]);