Wpis z mikrobloga

Miraski z #programowanie ! Pomocy! Próbuje napisać funkcje która sprawdza czy w danej tabeli/łańcuchu występuje jakiś ciąg znaków. Do tej pory wymyśliłem ale nie do końca mi to działa. Gdy przykładowo podam "ala ma kota" gdy podam ciąg "ala" to działa a dla innego już nie np. "kota".

bool ciag(char *tekst, char *szukciag)
{
int a=strlen(tekst);
int b=strlen(szukciag);
bool stat;
for(int i=0; i<=a; i++)
{
if(tekst[i]==szukciag[0])
{
for(int j=i+1; j<b; j++)
{
if(tekst[j]!=szukciag[j-i])
{
stat=false;
break;
}
else stat=true;
}
}
}
if(stat)return true;
else return false;
}

Pomoże ktoś?
  • 19
  • Odpowiedz
@EsTerO: to wywal w ogóle tą zmienną stat i wewnątrz wewnętrznej pętli zwracaj true, jeżeli przeszedłeś przez wszystkie wymagane znaki, a na na samym końcu funkcji false po obu forach
  • Odpowiedz
@EsTerO: No ja to moge wytłumaczyć jak potrafie

return (int)ciag.find( tekst)!=-1 ? true : false;
Stworzyłem funkcje która przymuje dwa argumenty typu string jeden to ciag a drugi to tekst (czylli to co szukamy) i zwraca true lub false

Do szukania wykorzystujemy funkcje find którą posiadają zmienne typu string i do niej
  • Odpowiedz
@sylwke3100: Algorytmicznie, mniej więcej wiedziałem o co chodzi, ponieważ szukałem rozwiązania w internecie i 90% odpowiedzi właśnie wykorzystywało to tego funkcje find. Ciekawy jak dla mnie jest natomiast sam zapis.
  • Odpowiedz