黑马程序员技术交流社区
标题:
下面的函数怎么分析,求解答
[打印本页]
作者:
shenxian88
时间:
2015-5-1 12:11
标题:
下面的函数怎么分析,求解答
int main()
{
char ch[7]={ "6a72b"};
int i,s=0;
for(i=0;ch[i]>= '0'&&ch[i]<= '9';i+=2)
s=10*s+ch[i]- '0';
printf("%d\n",s);
return 0;
}
作者:
许庭洲
时间:
2015-5-4 11:04
char ch[7]={ "6a72b"};// 定义字符数组,数组前五个元素是'6','a','7','2','b' 第六个元素是'\0', 最后一个元素是空字符
int i,s=0;
for(i=0;ch[i]>= '0'&&ch[i]<= '9';i+=2)
s=10*s+ch[i]- '0';
printf("%d\n",s);
return 0;
作者:
HHE_johnson
时间:
2015-5-4 11:57
该函数的功能是将字符串的偶数位数字找出来,然后组合到一起成为一个新的数字。
作者:
凌乱
时间:
2015-5-4 12:00
s=10*s+ch[i]- '0'; 这一句是什么意思呢?
作者:
HHE_johnson
时间:
2015-5-4 12:39
凌乱 发表于 2015-5-4 12:00
s=10*s+ch- '0'; 这一句是什么意思呢?
转成十进制的数字。在for循环中,当i==0时,ch[0]='6',然后s=(10*s+ch)- '0'=6-'0';讲字符串中字符转成数字格式。同理,下一次循环变为s=(10*6+ch-'0') ;这句就是讲字符串的数符转成一个整形数字。
作者:
wx_BZhrvVik
时间:
2015-5-4 18:40
int main()
{
char ch[7]={ "6a72b"};//定义一个有7个字符的数字,前5个为6a72b
int i,s=0;
for(i=0;ch[i]>= '0'&&ch[i]<= '9';i+=2)//判断条件为:'0'<=ch[i]<'9',每次循环以每次以偶数递增
s=10*s+ch[i]- '0';//将字符型转为整型数字
printf("%d\n",s);//打印
return 0;
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2