Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

[Zadatak] Redosled reci u inverznom poretku

[es] :: C/C++ programiranje :: C/C++ za početnike :: [Zadatak] Redosled reci u inverznom poretku

[ Pregleda: 3325 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

android~paranoid

Član broj: 81947
Poruke: 211
*.zrlocal.net.



Profil

icon [Zadatak] Redosled reci u inverznom poretku14.02.2006. u 16:52 - pre 221 meseci
Zadatak: Unete reci treba napisati u inverznom poretku.
Primer: "ne mogu da napravim" treba da se dobije "napravim da mogu ne".
Ideja: Napravim f-ju koja vraca poslednju prazninu(u ovom primeru ce biti u prvom pokusaju izmedju da i napravim), i onda stavim tu '\0' i pok+1 sa strcat nadovezujem na prvo prazan niz.
Realizacija:
Citat:

char *praznina(char *s)
{int i=0;
i=strrlen(s)-1;
while (*(s+i)>=0)
{
if (*(s+i)==' ')
return (s+i);
i--;
}
return NULL;
}

Citat:

main
...
char *pok,*a,*s,unos[100],m[100];
a=m;
printf...
gets(unos);
s=unos;
pok=praznina(s);
while (pok!=NULL)
{ *pok='\0';
strcat(a,pok+1);
strcat(a," ");
pok=praznina(s);
}
puts (a);
...


Ovako izgleda odprilike, ali mi vrti petlju stalno, ne radi. Moze li neko da analizira, da vidim gde sam pogresio.

[Ovu poruku je menjao android~paranoid dana 14.02.2006. u 17:53 GMT+1]
Mislim, šta reći !
 
Odgovor na temu

madamov
Milan Adamov
vlasnik
Adamov Konsultacije d.o.o.
Beograd, Srbija

SuperModerator
Član broj: 21939
Poruke: 4413
..shall-bg.customer.sbb.co.yu.

Sajt: www.adamov.rs


+138 Profil

icon Re: [Zadatak] Redosled reci u inverznom poretku14.02.2006. u 17:08 - pre 221 meseci
Što ne probaš drugačije: prvo napraviš niz svih reči u tekstu, pa ih onda ispišeš od poslednjeg do prvog člana niza?
 Certified Trainer Mojave 101 macOS Support Essentials 10.14
http://www.adamov.co.rs http://milan.adamov.rs http://www.infinitum.rs
 
Odgovor na temu

android~paranoid

Član broj: 81947
Poruke: 211
*.zrlocal.net.



Profil

icon Re: [Zadatak] Redosled reci u inverznom poretku14.02.2006. u 17:24 - pre 221 meseci
Probacu i tako, znaci matricu da napravim i da trpam u a[ i ][j] dok ne dodje do ' ', onda da poveca i, i preskoci prazninu. Ako neko moze i ovaj moj pokusaj da analizira, nije mi samo cilj da uradim zadatak, vec da vidim i gde gresim.

[Ovu poruku je menjao android~paranoid dana 14.02.2006. u 18:25 GMT+1]
Mislim, šta reći !
 
Odgovor na temu

madamov
Milan Adamov
vlasnik
Adamov Konsultacije d.o.o.
Beograd, Srbija

SuperModerator
Član broj: 21939
Poruke: 4413
..shall-bg.customer.sbb.co.yu.

Sajt: www.adamov.rs


+138 Profil

icon Re: [Zadatak] Redosled reci u inverznom poretku15.02.2006. u 11:44 - pre 221 meseci
Citat:
Probacu i tako, znaci matricu da napravim i da trpam u a[ i ][j] dok ne dodje do ' ', onda da poveca i, i preskoci prazninu.

Nemoj samo da uzimaš prazninu kao delimiter, napravi funkciju kojoj ćeš da proslediš karakter koji je delimiter prema kome parsuješ tekst. Dobro će ti doći jednog dana za parsovanje URL-a.
 Certified Trainer Mojave 101 macOS Support Essentials 10.14
http://www.adamov.co.rs http://milan.adamov.rs http://www.infinitum.rs
 
Odgovor na temu

vladab
Vladimir Bašanović
Beograd

Član broj: 9512
Poruke: 498
212.200.116.*



Profil

icon Re: [Zadatak] Redosled reci u inverznom poretku15.02.2006. u 15:31 - pre 221 meseci
Pokusaj da problem resis rekurzivno. Neka funkcija cita rec, pa neka se poziva dok ne dodje do krajka recenice, pa neka ispisuje tu istu rec.
 
Odgovor na temu

idb
Ivan Bulic
Beograd

Član broj: 4436
Poruke: 402



Profil

icon Re: [Zadatak] Redosled reci u inverznom poretku15.02.2006. u 21:11 - pre 221 meseci
Za izdvajanje reci imas vec gotovu funkciju u C stabdardnoj biblioteci ( string.h ). To je char * strtok ( const char * string, const char * delimiters );
Pogledaj ovaj primer na http://www.cplusplus.com/ref/cstring/strstr.html
Code:

// Source: www.cplusplus.com/ref/cstring/strtok.html
/* strtok example */
#include <stdio.h>
#include <string.h>

int main ()
{
  char str[] ="This is a sample string,just testing.";
  char * pch;
  printf ("Splitting string \"%s\" in tokens:\n",str);
  pch = strtok (str," ");
  while (pch != NULL)
  {
    printf ("%s\n",pch);
    pch = strtok (NULL, " ,.");
  }
  return 0;
}
 
Odgovor na temu

android~paranoid

Član broj: 81947
Poruke: 211
*.zrlocal.net.



Profil

icon Re: [Zadatak] Redosled reci u inverznom poretku16.02.2006. u 13:13 - pre 221 meseci
Citat:
Nemoj samo da uzimaš prazninu kao delimiter, napravi funkciju kojoj ćeš da proslediš karakter koji je delimiter prema kome parsuješ tekst. Dobro će ti doći jednog dana za parsovanje URL-a.


Ovako sam kontao(bez te f-je):

Citat:

while (*p)
{if *p!=' '
{a[ i ][j]=*p;
j++;}
else
{
a[ i ][j]='\0';
++i;
j=0;}
p++;
}


I onda sam i ispis uradio nekako da proverava gde je '\0' i onda da ide u sledeci red, ali ne radi ovako. Da li mozda mora sa pokazivacem na redove matrice. Hmmm, a sve mi se cini logicnim.


[Ovu poruku je menjao android~paranoid dana 16.02.2006. u 14:15 GMT+1]
Mislim, šta reći !
 
Odgovor na temu

idb
Ivan Bulic
Beograd

Član broj: 4436
Poruke: 402



Profil

icon Re: [Zadatak] Redosled reci u inverznom poretku16.02.2006. u 16:25 - pre 221 meseci
Vise bih voleo da ovo resavam u C++ (string, vector), ali evo kako bi moglo u C-u (deluje mi ruzno i nepouzdano, ali radi):
Code:
#include <stdio.h>
#include <string.h>
int main (){
    char str[] ="This is a sample string,just testing.";
    char* pch;
    char words[100][255]; // stavi ovde sta hoces 
    int i, n=0;

    printf ("Splitting string \"%s\" in tokens:\n",str);
    pch = strtok (str," ");
    while (pch != NULL)  {
        strcpy(words[n++],pch);
        printf ("%s\n", pch);
        pch = strtok (NULL, " ,.");
    }

    printf("~~~~~~~~~~~\n");
    for (i=n;i>0;i--) 
        printf ("%s\n",words[i-1]);

    printf("~~~~~~~~~~~\n");
    printf ("Press ENTER to continue.\n");
    getchar (); 
    return 0;
}

Ovo je samo malo prosiren predhodni primer na koji sam te uputio.
idb
 
Odgovor na temu

[es] :: C/C++ programiranje :: C/C++ za početnike :: [Zadatak] Redosled reci u inverznom poretku

[ Pregleda: 3325 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.