Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

[Zadatak] Uklanjanje uzastopnih pojava slova u recima iz ulaznog fajla, upis u izlazni fajl

  • 7 odgovora
  • 3.959 pregleda

Najnovija ↓

[Zadatak] Uklanjanje uzastopnih pojava slova u recima iz ulaznog fajla, upis u izlazni fajl 22.01.2009. u 02:30 · pre 216 meseci #1


da li moze neko da mi uradi ovaj zadatak? Pisala sam po svim mogucim forumima i nista i onda sam naletela na vas u nadi da cete mi pomoci
Ovako nesto nismo radili na faxu tako stvarno nemam nikakvu ideju kako bih ovo mogla da uradim a samo su nam ovo izbacili kao domaci pa da se snalazimo kao znamo i umemo... Molim vas pomozite mi
Re: [Zadatak] Uklanjanje uzastopnih pojava slova u recima iz ulaznog fajla, upis u izlazni fajl 22.01.2009. u 08:24 · pre 216 meseci #2
Pa prvo pitanje je da li si išta pokušala. Gde je ikakav kod? Šta je to što ste radili?

Apropo samog problema, prvi deo je da znaš da prepišeš iz jednog stringa u drugi. Drugi deo je da poslednji prepisani karakter (po upisivanju u drugi string) uvek zapamtiš u dodatnu promenjivu, a pre upisivanja proveravaš da li je ono što je na putu da se upiše njemu jednako (i naravno ne daš da se upiše, ako jeste). Da bi izbegla moguće probleme, postaviš tu dodatnu promenjivu na početku na 0 i obradiš poseban slučaj kada je polazni string dužine 0.

Onako uzgred, kog koga si? Ne verujem da je J. ex G, i pored svojih tikova, došla do toga da ove stvari ne odradi kako treba.
Potpis
Ipak se ++uje.
Re: [Zadatak] Uklanjanje uzastopnih pojava slova u recima iz ulaznog fajla, upis u izlazni fajl 22.01.2009. u 20:39 · pre 216 meseci #3
funkcija je prosta.
Code:


char* ocisti(char* s, char* t) {
    int i=0,k=0;
    while (*(s+i)!='\0') {
        if (*(s+i+1)!=*(s+i)) {
            *(t+k)=*(s+i);
            k++;
        }
        i++;

    }
    *(t+k)='\0';
    return t;

}


ovo ostalo pokusaj sama :D
Re: [Zadatak] Uklanjanje uzastopnih pojava slova u recima iz ulaznog fajla, upis u izlazni fajl 29.01.2009. u 21:15 · pre 216 meseci
izmenjeno 1 put, poslednji put X Files 29.01.2009. u 21:39
  1. X Files29.01.2009. u 21:39zapis iz teksta poruke
#6
Citat:
nemojte da ste takvi pleaseeeeeeeee................

Sta nam fali ;) ?

// Untested !!!
Code:

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

#define OJ_STO_VOLIM_MAGICNE_BROJEVE 30

/* kopirano iz prethodnih postova, netestirano !!! */
char* ocisti(char* s, char* t) {
    int i=0,k=0;
    while (*(s+i)!='\0') {
        if (*(s+i+1)!=*(s+i)) {
            *(t+k)=*(s+i);
            k++;
        }
        i++;
    }
    *(t+k)='\0';
    return t;
}

int main( int argc, char *argv[] )
{
    FILE *ulazna, *izlazna;
    char rec_procitana[OJ_STO_VOLIM_MAGICNE_BROJEVE];
    char  rec_ociscena[OJ_STO_VOLIM_MAGICNE_BROJEVE];
    int brojac_procesiranih_reci = 0;

    if ( argc != 3 )
    {
        printf( "Sintaksa:\nPROGRAM.EXE <ulazni_fajl> <izlazni_fajl>\n" );
        return EXIT_FAILURE;
    }
    if ( stricmp( argv[1], argv[2] ) == 0 )
    {
        printf( "Ulazni i izlazni fajl moraju biti razliciti!\n" );
        return EXIT_FAILURE;
    }

    ulazna = fopen( argv[1], "r" );
    if ( ulazna == NULL )
    {
        printf( "Ulazni fajl '%s' se ne moze otvoriti za citanje!\n", argv[1] );
        return EXIT_FAILURE;
    }

    izlazna = fopen( argv[2], "w" );
    if ( izlazna == NULL )
    {
        printf( "Izlazni fajl '%s' se ne moze otvoriti za upisivanje!\n", argv[2] );
        fclose( ulazna );
        return EXIT_FAILURE;
    }

    while ( !feof( ulazna ) )
    {
         /*
             Ne pitaj me zasto je ovo inicijalizovano sa NULL... Ako izostavis, dvaput upise
             poslednju rec u fajl, sto znaci da je u 'rec_procitana' ostao poslednji upis, a
             petlja se okrene jos jednom zbog citanja EOF, valjda :)
         */
        rec_procitana[0] = '\0';
        fscanf( ulazna, "%s", rec_procitana );
        if ( rec_procitana[0] != '\0')
        {
            fprintf( izlazna, "%s\r\n", ocisti( rec_procitana, rec_ociscena ) );
            ++brojac_procesiranih_reci;
        }
    }
    fprintf( izlazna, "Ukupno je obradjeno: %d reci.\r\n", brojac_procesiranih_reci );

    fclose( izlazna );
    fclose( ulazna );

    system("PAUSE");
    return EXIT_SUCCESS;
}


Prilog 'reci.zip' projekat za okruzenje: Code::Blocks 8.02 + GNU GCC Compiler
Re: [Zadatak] Uklanjanje uzastopnih pojava slova u recima iz ulaznog fajla, upis u izlazni fajl 02.02.2009. u 00:22 · pre 216 meseci
izmenjeno 1 put, poslednji put Eurora3D Team 02.02.2009. u 14:25
  1. Eurora3D Team02.02.2009. u 14:25zapis iz teksta poruke
#7
Reci bar hvala ljudima ;)
Ispod imas jos jednu varijantu ove funkcije ...
poz
Code:

char* ocisti(char* s, char* t)
{
    char* r = t;
    //  *t++ = *s++; // ispravnije je sa ovom linijom
    while(*t = *s++)
        if(*t != *(t-1))
            t++;
    return r;
}
Potpis
HomePage http://www.eurora3d.com
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme