All pastes #274682 Raw Edit

Miscellany

public text v1 · immutable
·published 2006-12-10 21:52 UTC
rendered paste body
#include <stdio.h>
#include <string.h>
char szavak[100][100];
char tartalom[1024][100];
char elvalaszto[1024];
int tartmeret,szavakmeret; // Összes szónak a száma. Könyebb vizsgálat érdekében.



/**********************************************************
A szavak.txt-b&#337;l beolvassa az összes szót, ezeket a 
szavakat kell majd a tartalom-ból kiszedni.
**********************************************************/
int szavakbe()
{
    FILE *cenzurafile;
    int i=0;
    cenzurafile=fopen("szavak.txt","rt");
    
    if (cenzurafile==NULL)
    {
       printf("Nem sikerult a szavakat tartalmazo file-t megnyitni!");

    } else while (!feof(cenzurafile)) fscanf(cenzurafile, "%s", szavak[i++]);
    szavakmeret=i;
    fclose(cenzurafile);
}




/**********************************************************
Az argumentumként megadott file-ból minden szót külön
olvas be és az elválasztó karaktereket külön menti el.
**********************************************************/
int fajlbeolvasas(char * filenev)
{
    FILE *szovegfile;
    int i=0,j=0;
    char c;
    szovegfile=fopen(filenev,"rt");    
    
    while(c!=EOF){    //Fájl tartalmának beolvasása tömbbe fájlvégig.
     c=fgetc(szovegfile);
     if ( c=='\n' or c=='\0' or c==' ' or c=='\t' or c=='.' or c==',' or c=='!' or c=='?' or c==':' )
     {
        j=-1;
        elvalaszto[i]=c;
        i++;
     }
     else {
        if(c!='&#729;') tartalom[i][j]=c;  // Kóbor karakter kisz&#369;rése!                  
     }
     j++;
    }
    tartmeret=i+1;
    fclose(szovegfile);
}

int javit()
{
    int i=0,j=0,k=0;
    for(i=0;i<szavakmeret;i++)
    {
        for(j=0;j<tartmeret;j++)
        {
            if(strcasecmp(tartalom[j],szavak[i])==0)
            {
              tartalom[j][0]='*';
              tartalom[j][1]='*';
              tartalom[j][2]='c';
              tartalom[j][3]='e';
              tartalom[j][4]='n';
              tartalom[j][5]='z';
              tartalom[j][6]='u';
              tartalom[j][7]='r';
              tartalom[j][8]='a';
              tartalom[j][9]='z';
              tartalom[j][10]='v';
              tartalom[j][11]='a';
              tartalom[j][12]='*';
              tartalom[j][13]='*';
              
              /*k=0;
              while(tartalom[j][k] !='\0')
              {
              tartalom[j][k]='*';
              printf("Cenzurazando! \n");                                    
              k++;
              }
              */         
            }
        }  
    }
}

/**********************************************************
Az egész szöveget kimenti az argumentumként megadott 
kimeneti fájlba. Ha a fájl létezik felülírja!
**********************************************************/
int kiment(char * filenev)
{
 FILE *kimeneti=fopen(filenev,"wt");
 int i=0,j=0;
 
 fputc('\t',kimeneti); // Els&#337; sorba tabulátor betétele
 for(i=0;i<tartmeret;i++)
 {
    fprintf(kimeneti,"%s",tartalom[i]);
    fputc(elvalaszto[i],kimeneti);
    if (elvalaszto[i] == '\n')  // Vizsgálja ha a sor végére értünk utána berak egy tabulátort..
    {
       fputc('\t',kimeneti);
    }
       
 }  
 
 fclose(kimeneti);
}

int main(int argc, char *argv[])
{
    int i;
    
    if (argc<2)
	{
       printf("Nem megfelelo argumentum hasznalat! Helyes hasznalat:\n");
       printf("cenzura befile.txt kifile.txt\n");           
       return 0;        
    }
    
    szavakbe();
    fajlbeolvasas(argv[1]);
    javit();
    kiment(argv[2]);
	
    printf("A program futása sikeres volt. A kimeneti fájl neve: %s",argv[2]);
    
    return 0;
}