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


 1 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

posted on 2012-11-09 10:06 Beatles 阅读(1999) 评论(0)  编辑 收藏 引用 所属分类: C++


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理


<2012年11月>
28293031123
45678910
11121314151617
18192021222324
2526272829301
2345678

导航

统计

常用链接

留言簿

随笔分类

随笔档案

搜索

最新评论

阅读排行榜

评论排行榜