C语言中怎么将数字字符转换成对应的数值

最近正在自学数据结构。在栈的运用中。计算后缀表达式时。怎么将数字字符转换成对应的数值书上给的式子是d=0;while(ch>='0'&&ch<='9'&&flag)/*判... 最近正在自学数据结构。在栈的运用中。计算后缀表达式时。怎么将数字字符转换成对应的数值 书上给的式子是
d=0;
while(ch>='0'&&ch<='9'&&flag) /*判定为数字字符*/
{ d=10*d+ch-'0';
ch=exp[t];t++;
}
d=10*d+ch-'0';这个式子的原理是什么?
将数字字符转换成对应的数值的原理是什么。为什么每次d都要置为0
展开
 我来答
菜鸟级也疯狂
2012-11-28
知道答主
回答量:2
采纳率:0%
帮助的人:3069
展开全部
ch-'0'是计算每个数字字符在数字中所对应的位置,较难理解的是10*d ,因为输入的是多个数,每次计算完一个数字字符,依然处在循环中带入下一次的计算,因此10*d的作用就是把上一次算得的结果往高位送,每乘以一个十就高一位。
说得不大清楚,不清楚的话还请见谅啊!
du瓶邪
推荐于2017-09-20 · TA获得超过2.4万个赞
知道大有可为答主
回答量:1.7万
采纳率:100%
帮助的人:2872万
展开全部
在C/C++语言中没有专门的字符串变量,通常用字符数组来存放字符串。
字符串是以“\0”作为结束符。
C/C++提供了丰富的字符串处理函数,下面是几个最常用的函数:
● 字符串输出函数puts。
● 字符串输出函数gets。
● 字符串连接函数strcat。
● 字符串复制函数strcpy。
● 测字符串长度函数strlen。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
鸡蛋永不碎
2010-07-27 · TA获得超过263个赞
知道答主
回答量:183
采纳率:0%
帮助的人:174万
展开全部
没看懂你说的树上那段

字符是按照ASCII码排的(见百度百科“ASCII码”词条)
其中第48个码为'0'
然后顺次是'1','2',...,'9'
所以说 一个字符a='6',那么a与'0'距离就是它代表的数值,也就是6
所以
char a='6';
int k=a-'0';

那么k=6
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ssvssk
2010-07-28
知道答主
回答量:10
采纳率:0%
帮助的人:0
展开全部
字符相减就是 字符的阿斯克码相减,数字字符有事从‘0’到‘9’挨着,他们的阿斯克码也是从48到57挨着的,每个字符减‘0’得到的距离就是字符对应的数值。
d=10*d+ch-'0' 若d不置为0 那不成两位数了,数字字符只有0-9
至于为什么多此一举 而不是d=ch-‘0’ 这个高人指点啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chinahnpds
2010-07-28 · 超过13用户采纳过TA的回答
知道答主
回答量:53
采纳率:0%
帮助的人:36.5万
展开全部
ASCII码方式转换吧,每个字符都有一个ASCII码对应,就是数字。
不知道这段代码具体在程序的哪个部分,如果d不置零,会因为之前的程序运行,d已经有值,和预期的结果不同
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式