C++将字符串转换成数字

    技术2022-05-20  34

    int changestr(char* str) { int len = strlen(str); int sum = 0; float carry = 1.0/10; for(int i=0; i<len; i++) { carry *= 10; sum += (str[len-1-i]-'0')*carry; } return sum; } 

    其中sum为carry为当前位之前的值。

    str[len-1-i]-'0'是表示将字符的ascii码减去0的ascii码,最后出来的数字就是需要的数字。

    每次*10的话就把当前位往前移了。

     

    *改进了算法,增加了支持负数,以及碰到有问题的字符就会throw exception。


    最新回复(0)