2014-10-22 2 views
0

моя программа принимает аргумент, в котором указано, сколько принтов должно использоваться. пример аргументов: отпечатки 2. Затем я хочу прокрутить значение после печати, номер 2., а затем напечатать это много раз. Я пробовал вот так:сравнить char с int in loop

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

Проблема в том, что argv является символом char и i является int. Поэтому, когда я запускаю этот цикл, argv [2] приобретает значение: 123123123 или что-то, а не просто 2. Есть ли способ обойти это или сравнить значение в char с int. Заранее спасибо

ответ

3

argv [2] является char* не char. argv [2] указывает на строку (массив символов с нулевым завершающим символом). Когда вы передаете аргументы вашей программе, аргумент находится в этой форме.

Вам необходимо будет его преобразовать, вы можете использовать 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]);