[COLOR=RED]我想打开s.class文件,查找其中的某些数据,并用其它数据替换,以下是我写的程序代码,查找s.class文件中的coru数组,用cocn替换,但得不到想要的运行结果,那位高手帮看看[/COLOR]
#include <stdio.h>
void main()
{
FILE *op;
char coru[]=”@c1dd7ab77e2c967746fe10681026c920f864811321bcb8be6bbfa5a03fda4e16c9c8db3af280f7703366e778e93c55e7159a8852d2b1381e521a337f22b1406cddf41a3114aecb4f4bfe79e0c5aa2ba8824fc989cb8bdcbf8ec5cef5176bfd4059f229b91bfa025126b295f9c409e75f6f6415ee094fd7f5dfd395a1f431668c5a08e88de891dc4dd38d4e9aa9b9c00dc604a0428e3aa5a28ccfa75af099147b”;
char cocn[]=”@87e582b417a4bf188a8ae01c5d5f799f24ca0e65dc75a31d5f58b15baa97e96dd88001351ac2dacfce4c5bfafd13b657dcc9faa7027e83642c5931fb51153e1888dc4e897de0fa44848b86eb97e3dfcbb89e4cbe14d302b4f83b2c698b0ad772fc7b0d619f1acaf3e2cab3d20e2957953883384397a77206992189cefa6bf1b25b08663adb683bdb4ad8d9870a3be1b483d091242f0996b99b847980ac63b81b”;
char seru1[]=”195.189.142.68″;
char secn1[]=”203.91.19.12″;
char seru2[]=”server.operamini.com”;
char secn2[]=”cust-kong.opera-mini.net”;
char soru[]=”yahoo”;
char socn[]=”google”;
char xg[150000];
long i=0,o;
void place(char num[],char s[],char r[]);
op=fopen(“s.class”,”rb”);
while(!feof(op))
{
xg[i]=fgetc(op);
i++;
}
fclose(op);
xg[i-1]=’\0′;
place(xg,coru,cocn);
op=fopen(“s.class.bak”,”wb”);
o=strlen(xg);
for(i=0;i<o;i++)
fputc(xg[i],op);
fclose(op);
}
void place(char num[],char s[],char r[])
{
long m,j,k,l,b,a;
char tem[500];
a=strlen(num);
m=strlen(s);
l=strlen(r);
printf(“%ld,%ld,%ld”,m,l,a);
for(j=0;j<a-m;j++)
{
for(k=0;k<m;k++)
tem[k]=num[j+k];
tem[k+1]=’\0′;
if(strcmp(tem,s)==0)
{
if(m==l)
{
for(b=0;b<l;b++)
num[b+j]=r[b];
}
else if(m>l)
{for(b=0;b<l;b++)
num[b+j]=r[b];
for(b=j+l;b<a-m+l;b++)
num[b]=num[b+m-l];
num[b]=’\0′;
}
else if(m<l)
{
for(b=a+l-m;b>j+l;b–)
num[b]=num[b-l+m];
num[a+l-m+1]=’\0′;
for(b=0;b<l;b++)
num[b+j]=r[b];}
}
}
}
s.class请到这下载http://users6.nofeehost.com/kingdragonfly120/s.class
>> 本文固定链接: http://www.vcgood.com/archives/2781
>> 转载请注明: kingdragonfly 2008年09月29日 于 C语言帝国 发表
C语言中常见的文件扩展名有哪些?各有什么用?< ?:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />