Untitled

                Never    
C/C++
       
#include <stdio.h>
#include <stdlib.h>

void UnesiString(char *pok,int maximalnaDuzina)
{
    int i=0;
    do
    {
        // uzmi vrijednost sa ulaznog toka i smjesti na mjesto na koje trenutno pokazivac pokazuje
        *pok=getchar();
        i++;
        if (i==maximalnaDuzina) break;
        // pomjeram pokazivac naprijed
        pok++;
    }
    while(*(pok-1)!='\n');
    // \0 je oznaka za kraj stringa
    *(pok-1)='\0';
}

void Brisi(char *string)
{
    int maxDuzina=0,indexPocetka=0,indexKraja=0,trenutnaPozicijaPocetak=0, pozicija=0;
    // varijabla pozicija pamti trenutni indeks
    char *pomocni=string;
    while(*string!='\0')
    {
        // rjesavam se pocetnih razmaka
        while(*string==' ' && *string!='\0')
        {
            string++;
            pozicija++;
        }
        if (*string=='\0') break;
        /// sada znam da sam 100% doso do rijeci, biljezim pocetak
        int pozicijaKrajaRijeci=pozicija;
        trenutnaPozicijaPocetak=pozicija;
        int duzinaTrenutneRijeci=0;
        /// idem do sljedeceg razmaka kako bi znao duzinu rijeci i ujedno gdje se zavrsava
        while(*string!=' ' && *string!='\0')
        {
            string++;
            pozicija++;
            duzinaTrenutneRijeci++;
            pozicijaKrajaRijeci++;
        }
        // ako je duzina trenutne rijeci veca od do sad zapamcene duzine, pamtim indekse pocetka i kraja te rijeci
        if (duzinaTrenutneRijeci>maxDuzina)
        {
            maxDuzina=duzinaTrenutneRijeci;
            indexPocetka=trenutnaPozicijaPocetak;
            indexKraja=pozicijaKrajaRijeci;
            //printf("Trenutna rijec pocinje i zavrsava na indeksima %d %d\n", trenutnaPozicijaPocetak,pozicijaKrajaRijeci);
            trenutnaPozicijaPocetak=pozicijaKrajaRijeci;

        }
        //printf("Duzina trenutne rijeci je %d\n",duzinaTrenutneRijeci);
    }
    //printf("\n%d\n",maxDuzina);

    ///brisanje
    /// na ovom mjestu znam indeks pocetka i kraja rijeci, i jednostavno vrsim pomjeranje nazad elemenata, tj znakova
    /// svih koji se nalaze iza indeksa kraja rijeci
    while(pomocni[indexKraja]!='\0')
    {

        pomocni[indexPocetka++]=pomocni[indexKraja++];

    }
    /// obavezno postaviti '\0' kao kraj, jer se duzina stringa izbacivanjem sada smanjila
    pomocni[indexPocetka]='\0';
}

int main()
{
    char string[100];
    UnesiString(string,100);
    Brisi(string);
    printf("%s",string);

    return 0;
}

Raw Text