抽取字符串的问题,请各位多多帮忙!
结果2.zip
(322.36 KB)
结果1中奇数行是名字,偶数行是字符串
结果2中每一对数对应结果1中的偶数行,即第一对对应结果1中第二行,第2对对应结果1中第4行,第6对对应结果1中第12行等。这些数代表在字符串中的位置。
在每一对数对应行中取出在每一对数左右两边个50个字母,分两行放置。
#include"stdio.h"
#include"stdlib.h"
#define N 1630 //样本文件总行数
#define M 815
FILE *in,*out1,*out2;
struct motif
{
char moti[5000]; //每行的最长值
}lead[N];
struct motif1
{
int start;
int end;
}leading[M];
void main()
{
int i,j,n,h=0;
in=fopen("E:\\结果1.txt","rt"); //变化
out1=fopen("E:\\结果2.txt","rt");
out2=fopen("E:\\结果3.txt","wt");
for(i=0;i<N;i++)
fscanf(in,"%s",lead[i].moti);
for(i=0;i<M;i++)
fscanf(out1,"%d\t%d",&leading[i].start,&leading[i].end);
for(i=1;i<N;i+=2)
{
fprintf(out2,"%s\n",lead[i-1].moti);
for(n=leading[h].start-50;n<leading[h].start+50;n++)
fprintf(out2,"%c",lead[i].moti[n]);
fprintf(out2,"\n");
for(n=(leading[h].end-50);n<(leading[h].end+50);n++)
fprintf(out2,"%c",lead[i].moti[n]);
fprintf(out2,"\n");
h++;
}
}
这是我变得,但总是出错,请指教!!!!!