progetto
progetto in C Marina (Uninettuno) Grazieunknown
c_cpp
4 years ago
2.3 kB
10
Indexable
// Dato un file di testo contenente parole, chiedere all’utente il nome del file ed un secondo.
// Si scriva nel nuovo file tutto il contenuto del primo tranne una parola detta dall’utente.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#define MAX 80
int main()
{
FILE *fpin,*fpout;
char file [FILENAME_MAX];
char frase[MAX],riga[MAX];
char riga_p[MAX];
int l,l_frase,j,i,k,cont,trovata;
printf("Nome del file da leggere ");
gets (file);
if ((fpin=fopen(file,"r"))==NULL)
{
fprintf (stderr,"Impossibile leggere il file %s",file);
return EXIT_FAILURE;
}
printf("Nome del file da scrivere ");
gets (file);
if ((fpout=fopen(file,"w"))==NULL)
{
fprintf (stderr,"Impossibile leggere il file %s",file);
return EXIT_FAILURE;
}
printf ("Parola da escludere ");
gets (frase);
l_frase=strlen(frase);
while (fgets(riga,MAX,fpin)!= NULL)
{
if (strstr(frase,riga)!= NULL)
{
fputs (riga,fpout);
}
else {
l=strlen(riga);
j=0;
trovata=0;
cont=0;
for (i=0;i<l-l_frase && trovata==0;i++)
{
if(riga[i]== frase[j])
{
k=i;
for (j=0;j<l_frase && riga[k]==frase[j];j++)
{
cont++;
k++;
printf ("%c ",frase[j]);
}
}
if (j==l_frase)
{
for (k=0;k<i;k++)
{
printf ("%c",riga[k]);
fputc (riga[k],fpout);
}
for (k=i;k<l-l_frase;k++)
{
printf ("%c",riga[k+l_frase]);
fputc (riga[k+l_frase],fpout);
}
trovata=1;
break;
}
}
if (trovata==0)
{
fputs (riga,fpout);
}
}
}
return 0;
}
Editor is loading...