• Здраво и добредојдовте на форумот на IT.mk.

    Доколку сеуште не сте дел од најголемата заедница на ИТ професионалци и ентузијасти во Македонија, можете бесплатно да се - процесот нема да ви одземе повеќе од 2-3 минути, а за полесна регистрација овозможивме и регистрирање со Facebook и Steam.

[C] Расчленување на зборови во даден текст

Статус
Затворена за нови мислења.
  • Ја почнал/а темата
  • #1

jovanco76

Intern
11 јануари 2008
13
0
Dali znae nekoj da ja resi ovaa zadaca: Da se najdat site zborovi vo nekoj tekst vnesen preku tastatura
Objasnbuvanje Zborovite vo tekts se oddeleni so edno ili poveke prazni mesta. Znaci pocetokot na nekoj zbor e po prazno mesto a po krajot na zborot ima prazno mesto . Znaci vnesot neka bide so scanf, kade se pameti vo nekoja znakovna niza.
Primer za programot:
Vlez: Dobro utro kako ste
Izlez: Zborovi vo tekstot se: Dobro, utro, kako, ste
 
  • Ја почнал/а темата
  • #3

jovanco76

Intern
11 јануари 2008
13
0
Jas napraviv vaka ama sum ja utnal skroz rabotata i sega neznam od kade da pocnam.... :)))

#include <stdio.h>
#include <stdlib.h>
int stringLength(const char string[])
{
int count=0;
while(string[count]!='\0')
++count;
return count;
}

int main(int argc, char *argv[])
{
int stringLength(const char string[]);
const char word1[]={'F','o','n'};
const char word2[]={'U','n','i','v','e','r','z','i','t','e','t'};
printf("%i %i\n",stringLength(word1),stringLength(word2));
system("PAUSE");
return 0;
}

a slednava e samo da gi sortira zborovite so dve ili tri mesta prazni da gi napravi so edno....ama i taa e utnata oti pak se bara drugo

#include <stdio.h>
#define F 0
#define T 1

main ()
{
int znak, ima = T;

while ((znak = getchar ()) !=EOF)
if (znak != ' ' && znak != '\t')
{ putchar (znak); ima=znak== '\n';}
else if (! ima) { putchar (' '); ima=T;}

system("PAUSE");
return 0;
}


a edna e i vakava.... ama pak ne e taa....
#include <stdio.h>
void main()
{
char recenica[50];
int broj_zborovi = 1, i;
puts("Vnesi edna recenica");
gets(recenica);
for(i = 0; recenica != ''; i++)
{
if(recenica == ' ')
broj_zborovi += 1;
}
printf("Recenicata ima %3d znakovi i %2d zborovi", i, broj_zborovi);
}

inace treba da se koristi kako sto rekov gore ,,scanf,, a ne gets i slicno.
 

''TcM>>

Intern
6 јануари 2008
961
39
Pa ako treba so zapirki samo da se odvojat,ova e mnogu lesno i bilo nesto otprilika vaka:

char zbor1[100]
char zbor2[100]
char zbor3[100] .........(do kolku sto ti trebaat)

pa ide scanf za sekoj zbor (scanf("%s",zbor1).....isto za kolku imas
i na kraj gi staas u printf("%s, %s, %s,",zbor1.....)

valda svati. Ako ne go svati kazi!...
 
  • Ја почнал/а темата
  • #5

jovanco76

Intern
11 јануари 2008
13
0
GOTOVO.....

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

int main(int argc, char *argv[])
{
char zbor1[100];
char zbor2[100];
char zbor3[100];
char zbor4[100];
char zbor5[100];
scanf("%s",zbor1);
scanf("%s",zbor2);
scanf("%s",zbor3);
scanf("%s",zbor4);
scanf("%s",zbor5);
printf("Vnesenite zborovite se %s,%s,%s,%s,%s\n",zbor1,zbor2,zbor3,zbor4,zbor5);



system("PAUSE");
return 0;
}

Vo pravo si lesna e.... ama ako ti raboti mozokot :)))
 

n3tG0d

Intern
9 април 2007
115
1
eve resenie, raboti dobro, ako ima neso problemi pisete.

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

int main(void)
{
int i,j;
int zbor = 0;

char pole[100];

fgets(pole,100,stdin);
for(i = 0 ; i < strlen(pole) ; i++)
{
j = i;
if((pole[j] != ' ') && (pole[j+1] == ' ') || (pole[j] == ' ') && (pole[j] != ' '))
continue;
if(pole[j] == ' ')
while(isspace(pole[j]))
j++;
else
{
zbor++;
while(pole[j] != ' ')
j++;
}
i = j;
}

printf("Ima vkupno %d zborovi\n", zbor);

return 0;
}
 
  • Ја почнал/а темата
  • #8

jovanco76

Intern
11 јануари 2008
13
0
da, vo red e gi broi zborovite

Ima samo edna greska ispusteno e pred return da se napise.... system("PAUSE"); Inace kako i da e Vi blagodaram na site.
 
Статус
Затворена за нови мислења.

Нови мислења

Последни Теми

Онлајн администрација

Статистика

Теми
43,518
Мислења
822,435
Членови
28,050
Најнов член
mindifislytherin
На врв Дно