在循环中将char与int进行比较

我的程序正在进行一个论证,说明应该使用多少打印件 . 参数的例子:打印2.然后我想在打印后循环遍历值,数字2.然后多次打印 . 我试过这样的:

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

问题是argv是一个char而我是一个int . 所以当我运行这个循环时,argv [2]获取值:123123123或者其他东西,而不仅仅是2.有没有办法解决这个问题,或者将char中的值与int进行比较 . 提前致谢

回答(2)

2 years ago

argv [2]是 char* 而不是 char . argv [2]指向一个字符串(空终止字符数组) . 将参数传递给程序时,参数采用该形式 .

你将不得不转换它,你可以使用atoi();

2 years ago

argv[2]char* ,是C语言的字符串,如果要将其更改为int,则必须将其转换 . 将String转换为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]);