C语言 哪位帮我改一下程序,题目要求提取第一个文本中第一个空格前的字符串与第二个文本中第一个逗号前字&#

串比较,如果相同,则把第一个文本中那一行打印在第三个文本中,下面是程序:
#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);

}

#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.txt","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);
s=x;t=y;
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);

}追问

你有改么?

温馨提示:答案为网友推荐,仅供参考