【发布时间】:2017-02-07 02:16:54
【问题描述】:
#include <stdio.h>
#include <string.h>
int myatoi(char *str) {
int i, res = 0;
for (i = 0; str[i] != '\0'; ++i) {
res = res * 10 + str[i] - '0';
return res;
}
}
int main(int argc, char *argv[]) {
int j;
char str[] = " i want to get argv[2] value here";
int val = myatoi(str);
printf("%d", val);
if (argc == 3) {
for (j = 0; j < val; j++) {
printf("Hello, %s \n", argv[1]);
}
} else
if (argc < 3) {
printf("Not Enough Arguments\n");
} else
if (argc > 3) {
printf("Too Many Arguments\n");
}
return 0;
}
如何将argv[2] 的值传递给char str[],以便将字符串转换为int 并打印输出。
argv[0] 是文件名,argv[1] 是字符串,argv[2] 应该是 int
示例输出:./hello raju 2
Hello, raju!
Hello, raju!
argv[2] 是 2,它应该打印 2 次。
【问题讨论】:
-
查找如何将字符串解析为数字。
-
int val=myatoi(argv[2]);有什么问题? -
... 并且 你检查了
argc值。 -
您忽略了
printf("%d",val);行的0输出 -
只要做 int val = atoi(argv[2]);