我的程序正在进行一个论证,说明应该使用多少打印件 . 参数的例子:打印2.然后我想在打印后循环遍历值,数字2.然后多次打印 . 我试过这样的:
for(i = 0; i < argv[2]; i++) { ....
问题是argv是一个char而我是一个int . 所以当我运行这个循环时,argv [2]获取值:123123123或者其他东西,而不仅仅是2.有没有办法解决这个问题,或者将char中的值与int进行比较 . 提前致谢
argv [2]是 char* 而不是 char . argv [2]指向一个字符串(空终止字符数组) . 将参数传递给程序时,参数采用该形式 .
char*
char
你将不得不转换它,你可以使用atoi();
argv[2] 是 char* ,是C语言的字符串,如果要将其更改为int,则必须将其转换 . 将String转换为int . 这是一个例子:
argv[2]
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]);
atoi(argv[2]);
2 回答
argv [2]是
char*
而不是char
. argv [2]指向一个字符串(空终止字符数组) . 将参数传递给程序时,参数采用该形式 .你将不得不转换它,你可以使用atoi();
argv[2]
是char*
,是C语言的字符串,如果要将其更改为int,则必须将其转换 . 将String转换为int . 这是一个例子:你可以这样称呼
atoi(argv[2]);