ascii转换问题

来源:3-5 编程练习

Wzmxa

2018-02-04 01:18:25

#include <<a href="https://www.baidu.com/s?wd=iostream.h&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1YLmWwBPADsP1m3ujckPjbv0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6KdThsqpZwYTjCEQLGCpyw9Uz4Bmy-bIi4WUvYETgN-TLwGUv3EnH61PHndrHmz" target="_blank" class="baidu-highlight">iostream.h</a>>

int main()

{

    char a[50]="1ab2cd3ef45g";

    char b[50];

    int cnt_index=0,cnt_int=0;

   

    for(int i=0;a[i]!='\0';++i) 

    {

        if(a[i]>='0'&& a[i]<='9') 

        {

            cnt_int*=10;//这里这个是什么意思

            cnt_int+=a[i]-'0'; //这个是什么意思

        }

        

        else if((a[i]>='a'&&a[i]<='z')||(a[i]>='A'&&a[i]<='Z')) 

        {

            b[cnt_index++]=a[i]; 

        }

    }

    

    b[cnt_index++]='\0'; 

    

    cout<<b<<endl;

    cout<<cnt_int<<endl; 

    return 0;

}


写回答

1回答

Tender10

2018-02-04

1、 cnt_int*=10;这句代码就是不断的给数字进行升位,刚开始是个位,存储取出来的第一个数字,假设第一个数字为1,那么1存在了个位就是1。下一次再取一个数字的时候就把1升一位,所以1*10,就变成了了10,那么10再去加取出来的第二个数2,就是12。类似,12升位就变成了120,再去加第三个数字,就变成了了123。

2、 cnt_int+=a[i]-'0';这个就是通过数字字符的ascii码值减去字符'0'的ascii码就等于该数字,最后在加上之前的数字,就不断的进行数字的存储了。例如1升位,加上2,就是12,然后123。最后将最后的结果输出就完成了所有数的输出了。

0
hzmxa
h 非常感谢!
h018-02-05
共1条回复

0 学习 · 593 问题

查看课程