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

2012-12-10 13:08:47 · 作者: · 浏览: 363

    int changestr(char* str)

    2 {

    3        int len = strlen(str);

    4        int sum = 0;

    5        float carry = 1.0/10;

    6        for(int i=0; i<len; i++)

    7        {

    8               carry *= 10;

    9               sum += (str[len-1-i]-'0')*carry;

    10        }

    11        return sum;

    12 }

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

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

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

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