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回答
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。最后将最后的结果输出就完成了所有数的输出了。
相似问题