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

时间:2014-10-22 10:30:45

标签: c loops

我的程序正在讨论应该使用多少打印件。 参数示例:打印2。 然后我想在打印后循环遍历值,数字2.然后多次打印。我试过这样:

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

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

2 个答案:

答案 0 :(得分:3)

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

您必须转换它,您可以使用atoi();

答案 1 :(得分:0)

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]);