znaci ne interesuje me ni koliko puta ima string "b" u "a", ni na kojoj lokaciji, nego prosto : IMA LI GA samo...
npr. rijec "roda" postoji u "priroda i drustvo"....
naravno, cim sam vam se javio-jasno vam je da ne radi...
nakon sto unesem string "a" i string "b", kad kliknem "enter" kursor predje dolje i program ama bas nista ne redi...
volio bih ako biste mi mogli pomoci da vidim sta ovdje ne valja...
da bi se lakse snasli-opisacu vam sta program radi, korak po korak...
u main() se unese "a" i "b", i zovemo f-ju
"provjeri" koja provjerava prvo da li je "a" prazan string, pa onda da li je neko a jednako sa pocetnim slovom od "b" (b[0])
ako jeste, ona zove f-ju "provjeri1" koja provjerava da li su sva slova u "a" pocev od one lokacije koja je nadjena da se podudara sa pocetnim slovom od "b" jednaka sa ostalim u "b".Tu sam koristio indikator IND, koji ce biti nula ako se neko slovo od "a" u duzini strlen(b) ne podudara sa korespodentnim slovom u "b", i tada iskace while petlja i vraca se nula...
normalno ako f-ja "provjeri" i "provjeri1" ne nadju ni jedno slovo jednako, samo nastavljaju provjeravati slova do kraja "a"...
evo koda:
#include <stdio.h>
#include<string.h>
#include<stdlib.h>
int provjeri1(char *a,char *b,int i) /*vraca IND=1 ako se ispostavi da je svako slovo iz "a" za duzinu od "b" jednako sa odgovarajucim slovima iz "b" */
{
int j=1,k=0,IND=1;
while (j<=strlen(b) && IND==1)
{
if (a[i]==b[k])
{
i=i+1;
k=k+1;
}
else if (a[i]!=b[k])
{
IND=0;
}
j=j+1;
}
return IND;
}
int provjeri(char *a,char *b) //vraca 1 ako ima podstring "b" u "a", a 0 ako nema
{
int i=0;
if (a[0]=='\0')
return 0;
while (a[i]!='\0')
{
if(a[i]==b[0]) //gledamo dali je a[i] jednako sa b[0] duzinu "b"
{
if(provjeri1(a,b,i)==1) /* pogledaj ostala slova iz "a" za duznu "b", "i" je lokacija pocetnog slova*/
{
return 1;
break;
}
i=i+1;
}
}
return 0;
}
void main()
{
char a[30],b[30];
printf("unesite glavni string: ");
gets(a);
printf("unesite trazeni string: ");
gets(b);
if (provjeri(a,b)==1)
{
printf("glavni string sadrzi trazeni string");
}
else
{
printf("glavni string ne sadrzi trazeni string!!");
}
}
unaprijed hvala...
a da... usput...ima li ovakva ista ( potpuno isti zadatak da ima) f-ja vec u c++-u, tj. Borlandu?? zna li ko??
waiting for us,
and it ain't no man...