| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 614 人关注过本帖, 1 人收藏
标题:一个C语言基本的问题,没有想通
只看楼主 加入收藏
wang155423
Rank: 6Rank: 6
等 级:侠之大者
帖 子:216
专家分:408
注 册:2011-9-4
结帖率:100%
收藏(1)
已结贴  问题点数:10 回复次数:7 
一个C语言基本的问题,没有想通
不完整代码:(举个例子)
char a[20];
int i,n=0;
scanf("%s",a);
for(i=0;a[i]!='\0';i++)
   if(a[i]>='0'&&a[i]<='9')
                n=n*10+(a[i]-'0');
我想问的是最后一行代码a[i]-'0'表示什么意思,字符型和字符型数据相减是怎么运算的?得到的结果也应该是字符型吧??和a[i]-0有什么区别,没有想明白,希望大家给与指点!!谢谢
搜索更多相关主题的帖子: C语言 
2012-11-12 21:01
yaobao
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:4
帖 子:1854
专家分:4121
注 册:2012-10-25
收藏
得分:2 
a[i]-'0'  是不是ASCII码值相减啊,毕竟a[i]是以字符型输入的,0的两边也有单引号,如果是这样的话a[i]-'0'和a[i]-0 还是不一样的


本人新手,说错勿怪,欢迎指正。。。。。

认认真真的学习,踏踏实实的走路:戒骄戒躁!!!
2012-11-12 21:54
遗矢的老人
Rank: 9Rank: 9Rank: 9
来 自:成都
等 级:蜘蛛侠
威 望:7
帖 子:325
专家分:1131
注 册:2012-7-20
收藏
得分:2 
就是想字符数字转换成整形数字的作用
2012-11-12 22:03
cyuyancqy
Rank: 2
等 级:论坛游民
帖 子:22
专家分:59
注 册:2012-10-31
收藏
得分:1 
在0-256之间的数字和字符之间是可以转换的
2012-11-12 23:07
wang155423
Rank: 6Rank: 6
等 级:侠之大者
帖 子:216
专家分:408
注 册:2011-9-4
收藏
得分:0 
还是觉得楼上没有说清楚
2012-11-12 23:09
a13506453814
Rank: 1
等 级:新手上路
帖 子:1
专家分:1
注 册:2012-11-13
收藏
得分:1 
觉得也是asiic码相减
2012-11-13 07:53
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:1 
C语言就这点好
可以随意加减
如果用不好了,那就排错很难了

3楼解释的很清楚了

DO IT YOURSELF !
2012-11-13 08:09
heroinearth
Rank: 10Rank: 10Rank: 10
来 自:云南曲靖
等 级:青峰侠
帖 子:430
专家分:1506
注 册:2011-10-24
收藏
得分:3 
以下是引用遗矢的老人在2012-11-12 22:03:44的发言:

就是想字符数字转换成整形数字的作用
版主说的很好,就是这个作用。
这句  if(a[i]>='0'&&a[i]<='9')
限定了a[i] 为'0'-'9'的字符,ASCII码值为48 - 57,如果a[i]为'8','8'的ASCII码为58,'0'的ASCI为48,'8'-'0'则为58-48=8,
就是想字符数字转换成整形数字的作用
2012-11-13 08:35
快速回复:一个C语言基本的问题,没有想通
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.035828 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved