找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 893|回复: 10
打印 上一主题 下一主题
收起左侧

C语言数组转换问题请教

[复制链接]
跳转到指定楼层
楼主
ID:76027 发表于 2024-10-22 11:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如把一个六位数组pttdata[6]={'1','2','3','4','5','6'}转换成pttdata[6]={1,2,3,4,5,6}。请大佬们指教。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:277550 发表于 2024-10-22 12:43 | 只看该作者
pttdata[i]=pttdata[i]-'0';


~~~~~~~~~
回复

使用道具 举报

板凳
ID:1109793 发表于 2024-10-22 12:55 | 只看该作者
-0X30?
回复

使用道具 举报

地板
ID:21455 发表于 2024-10-22 13:23 | 只看该作者
取出来 -‘0’
回复

使用道具 举报

5#
ID:537570 发表于 2024-10-22 13:55 | 只看该作者
        int a = 1;
        char b = '1';
        printf("AAversion V1.0  a = %d  b = %d \r\n",a,b);       
结果:
AAversion V1.0  a = 1  b = 49

故需要减去48,或者0x30,亦或者减去'0'
回复

使用道具 举报

6#
ID:68189 发表于 2024-10-22 16:48 | 只看该作者
unsigned char i;//定义一个变量
for(i=0;i<6;i++)//循环
{
   pttdata[i]=pttdata[i]-'0';//或者 pttdata[i]=pttdata[i]-48; 或者 pttdata[i]=pttdata[i]-0x30;
}
//执行完此循环以后,就会把六位数组pttdata[6]={'1','2','3','4','5','6'}转换成pttdata[6]={1,2,3,4,5,6}
回复

使用道具 举报

7#
ID:76027 发表于 2024-10-22 17:23 | 只看该作者
感谢各位大佬
回复

使用道具 举报

8#
ID:1134593 发表于 2024-10-24 18:13 | 只看该作者
-‘0’就可以了
回复

使用道具 举报

9#
ID:1134684 发表于 2024-10-26 12:51 | 只看该作者
数字字符转数字减去字符0就行
char c = '0';
int num_c = c - '0';
这样就能得到数字0了
回复

使用道具 举报

10#
ID:1134818 发表于 2024-10-27 19:27 | 只看该作者
1.通过-‘0’可以将数字字符转换成数字
2.这里的转换需要另起一个数组,这两个同名类型不同的数组会报错。
回复

使用道具 举报

11#
ID:76027 发表于 2024-10-28 16:50 | 只看该作者
HappyBoat 发表于 2024-10-27 19:27
1.通过-‘0’可以将数字字符转换成数字
2.这里的转换需要另起一个数组,这两个同名类型不同的数组会报错。

感谢,现在就是另一个数组转换的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表