1

Задание: Дан текстовый файл. Записать в новый текстовый файл все строки исходного файла, которые в качестве фрагмента содержат строку Str

В результате выдает ошибку - Segmentation fault (core dumped)

#include <stdio.h>
#include <string.h>

int main() { FILE file = fopen("test.txt","r"); FILE out = fopen("out.txt","w"); open(file);

char str[4][100];
char str1[100],str2[100];
char *istr;
int j,i;

while(!feof(file)) for(int i=1;i<=4;i++) { fscanf(file,"%s",&str[i]); }

printf("Str - "); gets(str1); open(out); j=1; for(i=1;i<=4;i++) { istr = strstr (str[i],str1); if( istr!= NULL ) { str2[j]=str[i]; j=j+1; } } int n=j; printf("%d",n); for(j=1;j<=n;j++) fprintf(out,"\n%s",str2[j]); close(file); close(out); return 0; }

  • компилятор выдал кучу предупреждений. исправьте их сначала. – AlexGlebe Mar 28 '21 at 11:21

1 Answers1

3

Не понимаю, что вы вообще делаете...

FILE *file = fopen("test.txt","rt");
FILE *out = fopen("out.txt","wt");

char str[100];

// Чтение str допишите сами

char buf[1024]; // Максимальный размер определите сами

while(fgets(buf,1024,file)) if (strstr(buf,str)) fprintf(out,"%s",buf);

fclose(out); fclose(file);

Этого вполне достаточно. И еще прочтите это.

Harry
  • 221,325