如何在不使用给定参数中的 atoi 的情况下将字符串转换为整数?这是我尝试过的:
int main(int argc, char *argv[]){
for(int i = 1; i < argc; i++){
const char *p = argv[i];
int j = 0;
while(isdigit(*p)){
j = j * 10 + *p - '0';
p++;
printf("%d\n", j);
}
}
}
出于某种原因,它会分开并再次重新添加它们。
$ ./a.out 55 6 50 66
5
55
6
5
50
6
66
最佳答案
您正在打印所有中间结果。保存打印输出,直到完成 while 循环。
while(isdigit(*p)){
j = j * 10 + *p - '0';
p++;
}
printf("%d\n", j);
关于不使用 atoi 将字符串转换为整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25776715/