LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 832|回复: 2

请大家看看这个c程序在bash下用脚本如何实现?

[复制链接]
发表于 2004-9-13 13:39:42 | 显示全部楼层 |阅读模式
#include<stdio.h>
#include<string.h>
#include<conio.h>


char xx[50][80];
int maxline=0;

int ReadDat(void);
void WriteDat(void);
void StrOR(void)
{
{int i;
char yy[80],*p;
for(i=0;i<maxline;i++)
{p=strchr(xx,'o');
while(p!=NULL)
{
memset(yy,0,80);
memcpy(yy,xx,p-xx);
strcpy(xx,xx+(p-xx)+1);
strcat(xx,yy);
p=strchr(xx,'o');
}
}
}
}
void main()
{clrscr();
if(ReadDat())
{printf("数据文件IN.DAT不能打开!]n\007");
return;
}
StrOR();
WriteDat();
}
int ReadDat(void)
{FILE*fp;
int i=0;
char*p;
if((fp=fopen("IN.DAT","r"))==NULL)return 1;
while(fgets(xx,80,fp)!=NULL)
{p=strchr(xx,'\n');
if(p)*p=0;
i++;
}
maxline=i;
fclose(fp);
return 0;
}
void WriteDat(void)
{FILE*fp;
int i;
clrscr();
fp=fopen("OUT5.DAT","w");
for(i=0;i<maxline;i++)
{printf("%s/n",xx);
fprintf(fp,"%s\n",xx);
}
fclose(fp);
}

个人感觉这个用脚本实现起来应该比用c程序简单吧,有人能做出吗,谢谢
发表于 2004-9-13 19:15:21 | 显示全部楼层
这是Turbo C的C程序源代码。稍微修改一下就可以在linux下编译运行了。犯不着改写成shell脚本吧。
ps:程序也写得不好。还是自己重新设计算法,再写一个吧。以后贴代码要注意保持缩进。
发表于 2004-9-14 20:00:40 | 显示全部楼层
目的就是去掉每行中的o?
shell确实简单
cat IN.DAT | sed "s/o//" > OUT5.DAT

那个C程序做了很多重复的无用功
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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