Prikazujem rezultate 1 do 10 od 10

Tema: Cenzura

  1. #1
    Senior Member My way or the highway
    Datum registracije
    Jun 2007
    Lokacija
    Slav. Brod/Rijeka
    Postova
    7.488

    Cenzura

    Dakle, ovo ce biti jedan dugacak post.
    Naime, dobili smo zadatak da napravimo cenzuru rijeci. Dobili smo datoteku s 5 rijeci i moraju se cenzurirat skupa s njihovim permutacijama. Program radi savrseno, ali, ako je prva rijec duza od druge, i druga duza od trece, dogadja se nesto sasvim deseto. Ako netko ima vremea i volje da pogleda i ako moze pomoc, bio bih jako zahvalan.


    Code:
    /*
    
    Napisati program koji ce ucitati post, te u svakoj neprimjerenoj rijeci zamijeniti sva slova osim prvog i zadnjeg znakovima zvjezdica. Rijeci su uzastopni nizovi slova odvojeni razmacima ili interpunkcijskim oznakama. Neprimjerena rijec je rijec cija se barem jedna permutacija znakova nalazi na crnoj listi. Dakle, ako se rijec „krava“ nalazi na crnoj listi, rijec „varka“ je takoder neprimjerena. Koristiti dinamicku alokaciju memorije i aritmetiku pokazivaca.
    
    Ulazni podaci
    Post koji je potrebno cenzurirati. Post se sastoji iskljucivo od malih slova engleske abecede, razmaka i interpunkcijskih oznaka. U datoteci cenzura.txt nalazi se broj N (10000 <= N <= 100000), broj rijeci na crnoj listi. U sljedecih N redaka nalaze se rijeci s crne liste, jedna rijec u jednom retku. Rijeci se sastoje iskljucivo od malih slova engleske abecede, a duljina svake rijeci je manja ili jednaka 15 znakova.
    
    Izlazni podaci
    U prvi i jedini redak na ekran treba ispisati cenzurirani post u skladu s tekstom zadatka.
    
    Primjer:
    ULAZ:
    ispit je bio upglu, nista nisam znao.
    IZLAZ:
    ispit je bio u***u, nista nisam znao.
    
    */
    #include <iostream>
    #include <fstream>
    #include <cstdlib>
    #include <string>
    
    using namespace std;
    
    struct rijeci{
    	char rijec[16]; 
    };
    
    void swap(char* first, char* second)
    {
        char ch = *second;
        *second = *first;
        *first = ch;
    }
     
    void permute(char* set, int begin, int end)
    {
        int i;
        int range = end - begin;
        if (range == 1) {
            //cout << set << endl;
    		ofstream dat;
    		dat.open("perms.txt",ios::app);
    		dat<<set<<endl;
    		dat.close();
        } else {
            for(i=0; i<range; i++) {
                swap(&set[begin], &set[begin+i]);       //initial swap
                permute(set, begin+1, end);             //recursion
                swap(&set[begin], &set[begin+i]);       //swap back
    		}
        }
    
    }
    
    bool cenzura(char tmp[16]){
    	ifstream dat;
    	dat.open("perms.txt");
    	
    	
    	while(!dat.eof()){
    		char ucitana[16];
    		dat.getline(ucitana, sizeof(ucitana));
    		if(strcmp(tmp,ucitana)==0) return true;
    	}
    	dat.close();
    	return false;
    }
    
    int main(){
    
    	ifstream dat;
    	int broj_rijeci;
    
    	dat.open("cenzura.txt");
    
    	if(dat.fail()){
    		cout<<"cenzura.txt se nije otvorila.\nProgram se prekida."<<endl;
    		exit(1);
    	}
    
    	dat>>broj_rijeci;
    
    	rijeci * baza_za_cenzuru = new rijeci[broj_rijeci];
    
    	for(int i=0; i<broj_rijeci; i++){
    		dat>>baza_za_cenzuru[i].rijec;
    		permute(baza_za_cenzuru[i].rijec, 0, strlen(baza_za_cenzuru[i].rijec));
    	}
    
    	dat.close();
    
    	char * post = new char[255];
    
    	cout<<"Unesite post:"<<endl;
    	cin.getline(post,255);
    
    	int broj_znakova = strlen(post);
        int trenutni = 0;
    
    	char tmp[16]S= {0};
    	int indextmp=0;
    
    	char cenzuriran[255];
    
    	while(1){
    		if (*(post+trenutni) < &#39;a&#39; || *(post+trenutni) > &#39;z&#39; || *(post+trenutni) == &#39;\0&#39;){
    			if(tmp){
    				int brtmp = strlen(tmp);
    				tmp[brtmp+1]=&#39;\0&#39;;
    				//cout<<"->"<<brtmp<<"<-"<<endl;
    				//cout<<"->"<<tmp<<"<-"<<endl;
    				cout<<tmp<<endl;
    				if(cenzura(tmp)){
    					for(int i=trenutni-brtmp+1; i<trenutni-1; i++){
    						*(post+i)=&#39;*&#39;;
    					}
    					char tmp[16]S= {0};
    				}
    				char tmp[16]S= {0};
    			}
    			indextmp = 0;
    			if (*(post+trenutni) == &#39;\0&#39;) break;
    			trenutni++;
    			continue;
    		}
    		
    		tmp[indextmp]S= *(post+trenutni);
    		indextmp++;
    		trenutni++;
    	}
    
    	cout<<post<<endl;
    
    	delete []Sbaza_za_cenzuru;
    	delete []Spost;
    	
    	return 0;
    }



    Tu je ujedno tekst zadatka i kod ispod.
    Hvala unaprijed.
    || Intel® Core™ i5-4570 @ 3.2 GHz || nVIDIA GeForce GTX260 || ASUS H87m Plus MBO || 2x4GB Corsair Vengeance @ 1600 MHz || OCZ ZT 750 Fully Modular PSU ||

  2. #2

    Re: Cenzura

    Probaj zamjeniti char sa string

  3. #3
    Senior Member My way or the highway
    Datum registracije
    Aug 2012
    Postova
    7.489

    Re: Cenzura

    wat
    = Citat = Izvorno postao Neven <R>
    Aral, StormCr0w i W3DR4N. Trijumvirat.
    Ispod toga su svi koji vole Scotta Pilgrima.
    May our only occupation be not having a job, and may the only cocktails that we make be molotov!

  4. #4
    Senior Member Respawned sorcerer
    Datum registracije
    Jan 2010
    Postova
    1.799

    Re: Cenzura

    = Citat = Izvorno postao StormCr0w
    wat

  5. #5
    Senior Member My way or the highway Hexfire's Avatar
    Datum registracije
    Apr 2011
    Lokacija
    Konjščina
    Postova
    7.552

    Re: Cenzura

    Slažem se, Carp radi najbolje igre.

  6. #6

    Re: Cenzura

    ?!

  7. #7
    Senior Member Small step for mankind
    Datum registracije
    Mar 2010
    Postova
    2.833

    Re: Cenzura

    Svaka čast Carp. Ovo je genijalno. Uživao sam
    [center:gz2o94qw]"Čovjek bez brkova je kao žena sa njima."[/center:gz2o94qw]

  8. #8
    Senior Member My way or the highway Neven <R>'s Avatar
    Datum registracije
    Nov 2005
    Lokacija
    wololo
    Postova
    7.914

    Re: Cenzura

    Meni je tak tak, bolji mi prvi nastavak. Ne valja od kad se Carp prodao EA-u

    EDIT: e al pazi drugi post od ovog bota. They are evolving

  9. #9
    Administrator My way or the highway
    Datum registracije
    Mar 2006
    Lokacija
    Uncanny Valley
    Postova
    9.450

    Re: Cenzura

    Mislim da ću kao maskirani osvetnik počet koračat državom sa kliještima u rukama, loviti ljude koji odgovaraju na postove botova, ter ih uškopljavati ravnodušno.
    Najbrži pištolj Policije Okusa. Može da pogodi sve od bilo gdje. Također piše i poeziju.

  10. #10

    Re: Cenzura

    Zar nisi vidio Carpovu novu igru? Neznaš što propuštaš!

Slične teme

  1. Cenzura
    By loo in forum Pljuvačnica
    Odgovora: 18
    Posljednji post: 15-06-2011, 12:13

Pravila postanja

  • Ne možeš stvarati nove teme
  • Ne možeš odgovarati na postove
  • Ne možeš slati privitke
  • Ne možeš mijenjati svoje postove
  •