读书人

字符串中取数有关问题

发布时间: 2012-07-28 12:25:13 作者: rapoo

字符串中取数问题 求助
是这样的 从控制台输入一串纯数字保存在string a里,当我用a[0]取出相应位置的数值时,返回的结果也是正确的,但是将他们进行+运算,结果就不对了。是不是我用string头文件的事? +被重载了?

比如我输入:356294
输出:a[0]=3 a[2]=6
但是a[0]+a[2]=105
这是怎么回事啊?
求解答 谢谢

[解决办法]
楼主不能将人的认知跟计算机混淆啊。

人的认知:a[0]= '3' a[2]= '6' a[0]+a[2] = ‘9’

计算机中内存地址中存储的二进制:a[0]= '3'= 51 a[2]= '6' = 54 a[0]+a[2] = 105


[解决办法]
你需要将字符转换成数字。比如a[0]='3',那么你想得到数值3的话,可以使用int i=a[0]-'0';那么i的值就是3了。如果你想把结果保存为字母的话,比如:3+4=7,i=7.那么你可以a[0]=7+'0';这时候a[0]=='7'。但是如果你的结果为多位数的话就要多个char来保存了

读书人网 >C++

热点推荐