首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C语言-单个字符合成多位整数

ch-‘0’(字符变成面值等值的整数)

int n=0;char ch;

while((ch=getchar())!=‘\n’)

/*表达式中,

(ch=getchar())表示输入字符;

!=‘\n’表示不等于回车时循环执行*/

if(ch>=‘0’&&ch<=‘9’)

n=n*10+ch-‘0’;

/*循环体中,

(ch>=‘0’&&ch<=‘9’)表示输入0到9的个位数字符;

n*10表示每输入一个数,上一个数就进位;

ch-‘0’表示将输入的字符转换为面值相等的整数*/

printf(“%d”,n);

输入:1空2空3空4

输出:1234

的计算过程

n=n*10+ch-‘0’

n默认从0开始

输入1,即ch=“1”

n=0+‘1’-‘0’=49-48=1

输入2,即ch=“2”

n=1*10+‘2’-‘0’=10+50-48=12

输入3,即ch=“3”

n=12*10+‘3’-‘0’=120+3=123

输入4,即ch=“4”

n=123*10+‘4’-‘0’=1230+4=1234

ch(字符变成ASCll码值等值的整数)

int n=0;char ch;

while((ch=getchar())!=‘\n’)

if(ch>=‘0’&&ch<=‘9’)

n=n*10+ch;

/*此处将ch-‘0’变成ch,

就会发现只有-‘0’才可以将字符变成与面值相等的整数,

没有-‘0’就会直接取ASCLL码值,结果大不一样*/

printf(“%d”,n);

输入:1空2空3空4

输出:54562

计算过程

n=n*10+ch

n默认从0开始

输入1,即ch=“1”

n=0+‘1’=49

输入2,即ch=“2”

n=49*10+‘2’=490+50=540

输入3,即ch=“3”

n=540*10+‘3’=5400+51=5451

输入4,即ch=“4”

n=5451*10+‘4’=54510+52=54562

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20211231A0DZCW00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券