串比较,如果相同,则把第一个文本中那一行打印在第三个文本中,下面是程序:
#include "stdio.h"
#include "string.h"
#include "stdlib.h"
#include "conio.h"
void main()
{
FILE *fr,*fw,*fp;char a[81],b[81],x[81],y[81],*p,*q,*s,*t,*k;int n,m;
fr=fopen("data2.txt","r");
fp=fopen("content.csv","r");
fw=fopen("data3.txt","w");
if(!fr||!fw||!fp)
{
printf("File open error:\n"); exit(0);}
while(fgets(a,sizeof(a),fr)!=NULL)
//读一行a,将第一个空格前复制到b
{p=a;q=b;
m=strlen(a);
while(*p)
{ *q++=*p++;
if(*p==32) break;
}
*q='\0';
//读一行A,同时读一行x,将x第一个逗号前复制到y
while(fgets(x,sizeof(x),fp)!=NULL)
{n=strlen(x);
while(*s)
{ *t++=*s++;
if(*s==',') break;
}
*t='\0';
//y和b比较大小,y=b,打印a,否则跳下一行
k=strcmp(b,y);
if(k!=0) {s=x+n-1;s++;n=0;}
else {fputs(a,fw); p=a+m-1;p++;}
}
m=0;
///////////////////////////////////////////////////////////
}
fclose(fw);
fclose(fr);
fclose(fp);
return(0);
}
你有改么?