Dragon132(Dragon)请进!!!!!!!

xiaoxuw 2003-08-20 12:50:59
http://expert.csdn.net/Expert/topic/2165/2165229.xml?temp=.4730799

再开一贴!接分!
...全文
48 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
Dragon132 2003-08-21
  • 打赏
  • 举报
回复
#include <stdio.h>
#include <string.h>
#include <ctype.h>

char *change(char *Dest,char *Src)
{
int i,j=0;
for(i=0;i<12;i++)
if(!isdigit(Src[i]))
return Src;
for(i=0;i<8;i++)
if(Src[i]!='0')
Dest[j++]=Src[i];
if(j==0)
Dest[j++]='0';
Dest[j++]='.';
Dest[j++]=Src[10];
Dest[j++]=Src[11]; //×îºóËÄλһ¶¨È¡ºóÁ½Î»£¬ÊÇÕâÑùÂð£¿
Dest[j]='\0';

return Dest;
}

main()
{
char str[13]="000888880088";
char dest[13];
printf("%s\n",change(dest,str));

}
xiaoxuw 2003-08-20
  • 打赏
  • 举报
回复
还有一问题:当源数据为"000000000099"时,应该输出为"0.99"
当源数据为"000000000000"时,应该输出为"0.00"
谢谢了!
Dragon132 2003-08-20
  • 打赏
  • 举报
回复
#include <stdio.h>

char *change(char *Dest, const char *Src)
{
int i,j=0;

for(i=0;i<8;i++)
if(Src[i]!='0')
Dest[j++]=Src[i];
if(j==0)
Dest[j++]='0';
Dest[j++]='.';
Dest[j++]=Src[10];
Dest[j++]=Src[11]; 最后四位一定取后两位,是这样吗?
Dest[j]='\0';

return Dest;
}

main()
{
char str[13]="000888880088";
char dest[13];
printf("%s\n",change(dest,str));

}
bm1408 2003-08-20
  • 打赏
  • 举报
回复
跟上!
xiaoxuw 2003-08-20
  • 打赏
  • 举报
回复
应该还要判断数据源有可能为空的情况!!!!
还有一种情况就是要判断一下数据源是不是为数字,可以用isdigit();这个函数判断
举例如下:

"000000000000"->"0.00";
"abcdcddfa132"->""/////返回应该为空
"000888880012"->"88888.12"
"000888880000"->"88888.00"
"000000000012"->"0.12"

应该就是这些了!!!!

我自己也在写,可是就是不满意!!! 不过谢谢你的热心帮助!!
上贴已结!!

Dragon132 2003-08-20
  • 打赏
  • 举报
回复
有没有这种情况“000000000001”
你那个数据源"00000000.0012"中不能有小数点

#include <stdio.h>

char *change(char *Dest, const char *Src)
{
int i,j=0;

for(i=0;i<8;i++)
if(Src[i]!='0')
Dest[j++]=Src[i];
if(j==0)
Dest[j++]='0';
Dest[j++]='.';
for(;i<=12;i++)
if(Src[i]!='0')
Dest[j++]=Src[i];
if(j==2)
{
Dest[j++]='0';
Dest[j++]='0';
}
return Dest;
}

main()
{
char str[13]="000888880088";
char dest[13];
printf("%s\n",change(dest,str));

}
xiaoxuw 2003-08-20
  • 打赏
  • 举报
回复
还是不对,当数据源为"00000000.0012"时函数返回为错!!!!!
应该为:0.12 的!!!
还有,当数据源为"000000000000"返回应该为"0.00"的!
xiaoxuw 2003-08-20
  • 打赏
  • 举报
回复
呵呵,谢谢了!!!结贴!
Dragon132 2003-08-20
  • 打赏
  • 举报
回复
改过一看看可以吗?

#include <stdio.h>

char *change(char *Dest, const char *Src)
{
int i,j=0;

for(i=0;i<8;i++)
if(Src[i]!='0')
Dest[j++]=Src[i];
if(j==0)
Dest[j++]='0';
Dest[j++]='.';
for(;i<=12;i++)
if(Src[i]!='0')
Dest[j++]=Src[i];
return Dest;
}

main()
{
char str[13]="000888880088";
char dest[13];
printf("%s\n",change(dest,str));

}
Dragon132 2003-08-20
  • 打赏
  • 举报
回复
谢谢照顾
Dragon132 2003-08-20
  • 打赏
  • 举报
回复
接分啊!
全志R58的官方开发板加载bmi160驱动的步骤3B.txt 开发板:全志R58的官方开发板R58_PER3_LPDDR3_32X1_V1_1.pdf(板载加速度传感器bma250) 目标:外挂bmi160模块可以检测到加速度和角速度(acc+gyr/加速度传感器+陀螺仪) BSP:r58_20160823.tar.gz(2016/8/22从全志的git服务器拿下来的系统) 显示:HDMI输出1080p分辨率的LCD显示器。 计划步骤: 1、打通开发板上的bma250(证明开发板硬件是好的。全志官方的BSP也是好的。) 2、将驱动程序bma250.c中的bma250全部替换为bmi160,验证是可以加入新的gsensor的(陀螺仪类似)。 3、借用bma250.c这个驱动程序,初始化的部分修改为初始化bmi160,调通BMI160的gsensor部分。 4、完善全志/博世提供的bmi160的驱动程序,调通BMI160的gsensor部分。 (陀螺仪部分鱼刺类似,陀螺仪部分借用l3gd20.c来验证bmi160的gyr部分) 下面进行第三步:借用bma250.c这个驱动程序,初始化的部分修改为初始化bmi160,调通BMI160的gsensor部分。 为了方便观察,直接注释掉除了bma250之外的全部的gsensor: Z:\home\wwt\only_bma250_r58\android\device\softwinner\common\hardware-common\libhardware\libsensors\aw_sensors\sensorDetect.cpp struct sensor_extend_t gsensorList[] = { { { "bma250", LSG_BMA250, }, { "Bosch 3-axis Accelerometer", "Bosch Sensortec", 1, 0, SENSOR_TYPE_ACCELEROMETER, 4.0f*9.81f, (4.0f*9.81f)/1024.0f, 0.2f, 0,0,0, { }, }, }, }; Z:\home\wwt\only_bma250_r58\android\device\softwinner\octopus-perf\configs\gsensor.cfg ;Direction parameter adjustment, including the x, y, z axis, and xy interchange four variables, ;the name of the module used for identification, and drive registered name consistent ;-------------------------- ;name:bma250 ;-------------------------- gsensor_name = bma250 gsensor_direct_x = false gsensor_direct_y = true gsensor_direct_z = true gsensor_xy_revert = true Z:\home\wwt\only_bma250_r58\android\device\softwinner\octopus-perf\BoardConfig.mk #gsensor & Gyr sensor SW_BOARD_USES_SENSORS_TYPE = aw_sensors 注意:lunch的f1选项在HAL层中使用的ST的9轴(ACC+GYR+MAG)传感器。 #gsensor & Gyr sensor SW_BOARD_USES_SENSORS_TYPE = lsm9ds0 Z:\home\wwt\only_bma250_r58\android\device\softwinner\octopus-perf\init.sun8i.rc on boot # use automatic det

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧