本文介绍了字符串转换为整数,而无需使用的atoi的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我多么字符串转换为整数,而无需使用来自参数的atoi给出?以下是我已经试过:

  INT主(INT ARGC,CHAR *的argv []){
    的for(int i = 1; I< ARGC,我++){
        为const char * p =的argv [I]
        INT J = 0;
        而(ISDIGIT(* P)){
            当J = J * 10 + *对 - 0;
            p ++;
            的printf(%d个\\ N,J);
        }
    }
}

由于某些原因,它裂开并重新添加。

  $ ./a.out 55 6 50 66

55
6

50
6
66


解决方案

您要打印所有的中间结果。保存打印输出后,直到你完成while循环。

 而(ISDIGIT(* P)){
    当J = J * 10 + *对 - 0;
    p ++;
}的printf(%d个\\ N,J);

How would I convert string to integer without using atoi from arguments given? Here's what I've tried:

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

For some reason, it's splitting apart and re-adding them again.

$ ./a.out 55 6 50 66
5
55
6
5
50
6
66
解决方案

You're printing all the intermediate results. Save the printout until after you've completed the while loop.

while(isdigit(*p)){
    j = j * 10 + *p - '0';
    p++;
}

printf("%d\n", j);

这篇关于字符串转换为整数,而无需使用的atoi的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

07-12 06:10