infoarena

Comunitate - feedback, proiecte si distractie => Off topic => Subiect creat de: David si Goliat din August 10, 2006, 13:08:17



Titlul: string
Scris de: David si Goliat din August 10, 2006, 13:08:17
 Imi spune cineva daca exista o functie care sa afle de cate ori se afla un sir in alt sir sau trebuie facuta manual?


Titlul: Re: string
Scris de: Sima Mihai Cotizo -vechi din August 10, 2006, 13:27:09
Citat
char *  strstr ( const char * string1, const char * string2 );

Find substring.
  Scans string1 for the first occurrence of string2.
  The search does not include terminating null-characters.
......
 Return Value.
  A pointer to the first occurrence of string2 in string1.
  If string2 is not found in string1 the function returns NULL.

poti folosi strstr (din libraria string.h / cstring ) si sa cauti recursiv, de genul:

Cod:
long noa(char *where, char *who) {
char *p = strstr(where, who);
if ( p==NULL ) return 0;
else return 1+noa( where+strlen(who), who );
}


Titlul: Raspuns: string
Scris de: Paul-Dan Baltescu din August 10, 2006, 13:44:42
Sau in Pascal functia POS(s1,s2) care returneaza prima pozitie in care apare s1 in s2 sau 0 daca nu apare.


Titlul: Raspuns: string
Scris de: David si Goliat din August 10, 2006, 19:05:57
 Stiam de metoda asta recursiva ,dar ma gandeam ca poate mai exista si o alta modalitate mai rapida. Am intalnit asa ceva la problema contact de pe Usaco(daca o stie cineva).
 Oricum, ms de interventie  :thumbup: