[ jovanco76 @ 19.02.2008. 19:58 ] @
Da se najdat site zborovi (reci) vo nekoj tekst vnesen preku tastatura
Objasnuvanje. Zborovite vo tekts se oddeleni so edno ili poveke prazni mesta. Znači početokot na nekoj zbor e po prazno mesto a po krajot na zborot ima prazno mesto .

Vaka e postavena zadacata a bi trebalo da se resi vaka:

Ova zadaca e od oblasta na znakovni nizi

Prvo, se vnesuva daden tekst preku tastatura.
Ovoj tekst ne e nisto drugo, osven znakovna niza.
Code:

char tekst[100]; \\ pretpostavuvame deka tekstot moze da sodrzi najmnogu 100 bukvi
printf("Vnesi tekst: ");
scanf("%s", tekst);

Znaci vo ovoj moment celiot vnesen tekst se naoga vo nizata tekst, i posledniot znak e '\0'.
Primer, ako sme vnele 'Jas sum od struga', togas tekst=Jas sum od struga\0

So eden while ciklus ke pominime niz site bukvi vo tekstot do krajot, i ke gi pecatime samo onie koi formiraat celina kako zbor.
Code:

char zbor[50];
int k,i=0;
while (tekst[i] != '\0') {
k=0;
while ((tekst[i] != ' ') && (tekst[i] != ''\0')) {
zbor[k]=tekst[i];
k++;
i++;
}

// ovde treba da ima kod, a da se pecati zbor primenlivata

}

Znaci ako sme vnele tekst=Jas sum od struga
Treba da se ispecatat zborovite
Jas
sum
od
struga

E sega KAKO PONATAKA NEZNAM..................
Pozdrav od Makedonija


EDIT: X Files : Molim Vas da zbog preglednosti, kod upisujete između tag-ova predviđenih za to:

[code]
int main ( int argc, char *argv[] )
{
// ...
return 0;
}
[/code]

[Ovu poruku je menjao X Files dana 19.02.2008. u 21:44 GMT+1]
[ Burgos @ 19.02.2008. 22:23 ] @
Ne znam da li pomaže, ali, evo:

Code:
#include <stdio.h>
#include <string.h>

int main ()
{
  char tekst[100] = {0}; 
  char * pStr;
  
  printf("Vnesi tekst: ");
  gets(tekst);
  pStr = strtok (tekst," ");
  while (pStr != NULL)
  {
    printf ("%s\n",pStr);
    pStr = strtok (NULL, " ");
  }
  system("PAUSE");
  return 0;
}
[ Burgos @ 19.02.2008. 23:11 ] @
A evo ti nešto na brzinu iskucato.... Verovatno je bagovito, ali mislim da je ideja ta...

Code:
#include <stdio.h>
#include <string.h>

//char* tekst - tekst koji se deli
//char rez[][50] - 2D niz koji sadrzi pojedine reci
//int i - pozicija od koje se rec deli
//int k - rec od koje se rec deli
//PRIMER:
//br_reci = razdeli(buffer, rezultat, 0, 0); - vraca broj reci, a rec deli pocevsi od pozicije 0

int razdeli(char *tekst, char rez[][50], int i, int k){
    int j = 0;
    if(i == strlen(tekst)) return ++k;
    for(i; i < strlen(tekst); i++, j++){
          if((tekst[i] != ' '))
          {
                       rez[k][j] = tekst[i];// tekst[i];             
          } 
          else
          {
              k = razdeli(tekst, rez, ++i, ++k);
              break;   
          }
    }
    return k;
}

int main ()
{
  char tekst[100] = {0}; 
  char reci[50][50] = {0, 0};
  int i;
  int broj_reci;
  
  printf("Vnesi tekst: ");
  gets(tekst);

  broj_reci = razdeli(tekst, reci, 0,0);
    
  for(i = 0; i <= broj_reci; i++)
        printf("%s\n", reci[i]);
        
  system("PAUSE");
  return 0;
}
[ jovanco76 @ 20.02.2008. 13:05 ] @
HVALA, Pomaze, da.......;)