A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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;
}

5 个回复

倒序浏览
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;
回复 使用道具 举报
该函数的功能是将字符串的偶数位数字找出来,然后组合到一起成为一个新的数字。
回复 使用道具 举报
s=10*s+ch[i]- '0';   这一句是什么意思呢?
回复 使用道具 举报
凌乱 发表于 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') ;这句就是讲字符串的数符转成一个整形数字。
回复 使用道具 举报

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;
}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马