c语言中,怎样把内容为数字的char转换为int?

例如,chara='3',现在要从a中得到整数3,该用什么函数?atoi貌似不行,因为atoi中需要输入一个字符串,不能直接转化单个字符。请指教。... 例如,char a='3',现在要从a中得到整数3,该用什么函数?
atoi貌似不行,因为atoi中需要输入一个字符串,不能直接转化单个字符。
请指教。
展开
 我来答
风若远去何人留
推荐于2017-09-05 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450132
专业C/C++软件开发

向TA提问 私信TA
展开全部
内容为数字的char,包含
0,1,2,3,4,5,6,7,8,9
共计10个字符。
这十个字符在存为字符型时,其存储值为对应的ascii码,而这些ascii码是连续的,且按照其本身数字的大小来排列。
这样就可以将字符值,减去起始ascii码值实现转为对应值的效果。

int a; //转换的目标变量。
char c = '7'; //要转换的字符。
c = a - '0';
这样得到的就是对应的值了,即c = 7。
如果在文件中需要多次该操作,则可以定义一个带参宏,如下:
#define chartonumber(x) (x-'0')
这样只需要调用
c = chartonumber(a);
即可实现效果。
iJeeker
推荐于2017-09-14 · TA获得超过588个赞
知道小有建树答主
回答量:505
采纳率:0%
帮助的人:517万
展开全部
atoi是将数字的char*字符串转化为int型

将数字的char转换为int,直接输出int格式的char型就行,或者a-'0',ine和char是可以根据ASCII码进行隐式转换的

ASCII码表

http://www.weste.net/tools/ASCII.asp
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
盍荷孛友灵
2019-08-12 · TA获得超过3865个赞
知道大有可为答主
回答量:3193
采纳率:34%
帮助的人:197万
展开全部
本质上char类型和int其实是同一种类型。。。都代表了整数型大小,转换的话,在前面加上强制转换符就好了,如int()之类的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友c4249ef
2009-09-30 · TA获得超过4867个赞
知道大有可为答主
回答量:1855
采纳率:0%
帮助的人:3225万
展开全部
a-'0'
就行
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
西门蛤蟆
2009-09-30 · TA获得超过1021个赞
知道小有建树答主
回答量:597
采纳率:0%
帮助的人:0
展开全部
x = (int)(unsigned char)c;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式