标题: C语言数组转换问题请教 [打印本页]

作者: bd5fna    时间: 2024-10-22 11:32
标题: C语言数组转换问题请教
如把一个六位数组pttdata[6]={'1','2','3','4','5','6'}转换成pttdata[6]={1,2,3,4,5,6}。请大佬们指教。

作者: devcang    时间: 2024-10-22 12:43
pttdata[i]=pttdata[i]-'0';


~~~~~~~~~
作者: xiaobendan001    时间: 2024-10-22 12:55
-0X30?
作者: csmjmcc    时间: 2024-10-22 13:23
取出来 -‘0’
作者: wzg_90    时间: 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'

作者: wpppmlah    时间: 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}
作者: bd5fna    时间: 2024-10-22 17:23
感谢各位大佬
作者: tough777    时间: 2024-10-24 18:13
-‘0’就可以了
作者: 379908663    时间: 2024-10-26 12:51
数字字符转数字减去字符0就行
char c = '0';
int num_c = c - '0';
这样就能得到数字0了
作者: HappyBoat    时间: 2024-10-27 19:27
1.通过-‘0’可以将数字字符转换成数字
2.这里的转换需要另起一个数组,这两个同名类型不同的数组会报错。
作者: bd5fna    时间: 2024-10-28 16:50
HappyBoat 发表于 2024-10-27 19:27
1.通过-‘0’可以将数字字符转换成数字
2.这里的转换需要另起一个数组,这两个同名类型不同的数组会报错。

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




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1