C语言问题(数组赋值问题)
问题如下:我有两个字符数组:chartime1[5],里面放有"2009",还有一个字符数组chartime2[3],里面放有"12",还有一个实型数组floatarra...
问题如下:我有两个字符数组:char time1[5],里面放有"2009",还有一个字符数组char time2[3],里面放有"12",还有一个实型数组float array[3],问题是:我怎么样把time1数组中的"2009"放在array[0]中,time2数组中的"12"放在array[1]中,哪位知道的,请告诉我哈,希望给出C语言语句,在线等待,非常感谢!! array[0]=time1[0]; 我测试了一下,2009没有存到array[0]里面去。大家都说说看啊 我要解决的就是设置时间问题,比如要设置时间为字符串char *datetime = "2009-10-10 12:12:12";设置时间函数为SetTime(uint16 *TimePtr);uint16为 unsigned short,要把上面的datetime字符串中的"-"和冒号去掉再保存到一个数组再去设置时间,我的想法是先把2009取出保存到一数组中,取出10保存到一数组中,然后再把这些数都保存到一个uint16的数组当中。或者还有什么别的方法把那字符串中的 - 和冒号去掉,把2009 10等这些书存到一uint16的数组中?谢谢
展开
1个回答
展开全部
array[0]=time1[0];
执行的结果array[0]是50是把time1[0]的值付给了array[0]由于array是float型time1是字符型传值过程具体是,time1[0]转换成float型就‘2’变成了50(由于2的ascii码为50)所以最后救国就成了50.
(1)如果是作为字符存储,以后还要拿出来:
首先要知道一个float是4字节,一个char是1字节那么将一个“2009”放入一个float中是可能的。
只要把每个char放入float中的不同位置就可以了,具体如下:
array[0]=time1[0]<<3;
array[0]+=time1[1]<<2;
array[0]+=time1[2]<<1;
array[0]+=time1[3];
这样就可以把time1数组中的"2009"放在array[0]中了;
另外一个同理
(2)如果要存储的是数字2009,
那么只要将字符转换为数字就可以了
这里要用到ascii码,0的ascii码为48.
所以将字符换为数字就要-48,具体如下:
array[0]=(time1[0]-48)*1000+(time1[1]-48)*100+(time1[2]-48)*10+time1-48[3];
执行的结果array[0]是50是把time1[0]的值付给了array[0]由于array是float型time1是字符型传值过程具体是,time1[0]转换成float型就‘2’变成了50(由于2的ascii码为50)所以最后救国就成了50.
(1)如果是作为字符存储,以后还要拿出来:
首先要知道一个float是4字节,一个char是1字节那么将一个“2009”放入一个float中是可能的。
只要把每个char放入float中的不同位置就可以了,具体如下:
array[0]=time1[0]<<3;
array[0]+=time1[1]<<2;
array[0]+=time1[2]<<1;
array[0]+=time1[3];
这样就可以把time1数组中的"2009"放在array[0]中了;
另外一个同理
(2)如果要存储的是数字2009,
那么只要将字符转换为数字就可以了
这里要用到ascii码,0的ascii码为48.
所以将字符换为数字就要-48,具体如下:
array[0]=(time1[0]-48)*1000+(time1[1]-48)*100+(time1[2]-48)*10+time1-48[3];
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询