num=10*num+(ch-'0')是啥意思
#include <stdio.h>int main()
{
int ch;
int num = 0;
printf("请输入待转换的字符串:");
do
{
ch = getchar();
if (ch >= '0' && ch <= '9')
{
num = 10 * num + (ch - '0');
}
else
{
if (num)
{
break; // 如果已有数字,则退出循环
}
}
}
while (ch != '\n');
printf("结果是:%d\n", num);
return 0;
} 本帖最后由 jhq999 于 2021-9-5 18:01 编辑
假如num=2,ch=49('1');那么num = 10 * num + (ch - '0');相当于num=10*2+(49-48)=>num=21
字符1的值是49,0是48。 (ch-'0')
就是字符对应的数字(int)
然后每轮*10就是高位
页:
[1]