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

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

再开一贴!接分!
...全文
47 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
  • 打赏
  • 举报
回复
接分啊!

69,371

社区成员

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

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