找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1432|回复: 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}。请大佬们指教。
回复

使用道具 举报

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’
回复

使用道具 举报

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'
回复

使用道具 举报

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}
回复

使用道具 举报

ID:76027 发表于 2024-10-22 17:23 | 显示全部楼层
感谢各位大佬
回复

使用道具 举报

ID:1134593 发表于 2024-10-24 18:13 | 显示全部楼层
-‘0’就可以了
回复

使用道具 举报

ID:1134684 发表于 2024-10-26 12:51 | 显示全部楼层
数字字符转数字减去字符0就行
char c = '0';
int num_c = c - '0';
这样就能得到数字0了
回复

使用道具 举报

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

使用道具 举报

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 单片机教程网

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