Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*Izbaci najkracu rijec iz stringa*/
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- int slovo(char c)
- {
- if(c >= 'A' && c <= 'Z' || c >= 'a' && c <= 'z')
- return 1;
- return 0;
- }
- void izbaci(char *string)
- {
- int min, counter, prva = 1;
- char* p, *q;
- /*Trazenje rijeci s najmanje slova - algoritam poredjenja s prvom rijeci*/
- while(*string != '\0')
- {
- counter = 0;
- if(slovo(*string)==1)
- {
- /*Prebrojavamo slova dok god pokazivac pokazuje na slovo*/
- int i;
- for(i=0; slovo(string[i])==1; i++)
- {
- counter++;
- }
- /*Ovaj uslov ce biti ispunjen samo u prvoj iteraciji, odnosno dok pokazivac ne prodje prvu rijec*/
- if(prva==1)
- {
- min = counter;
- p = string;
- q = string + counter + 1;
- /*U min smjestamo broj slova te rijeci, pokazivac p stavljamo na prvo slovo prve rijeci, a pokazivac q na prvo slovo naredne rijeci*/
- }
- /*Svaka sljedeca iteracija nece zadovoljiti uslov prva == 1, pa poredimo sada broj slova svake rijeci sa prvom*/
- if(counter < min)
- {
- min = counter;
- p = string;
- q = string + counter + 1;
- /*Ako smo je nasli zabiljezimo "koordinate" pokazivaca, analogno gore, p na pocetak te rijeci, a q na pocetak prve naredne*/
- }
- prva = 0; /*Nakon prve iteracije ovo je postalo 0*/
- string+= counter; /*Predji na razmak*/
- }
- string++;
- }
- /*Klasicno izbacivanje odnosno izguravanje rijeci iz stringa*/
- /*Imamo pocetak rijeci koje treba izbaciti, i pokazivac na narednu, i idemo overwrite p i q*/
- while(*(q-1) != '\0')
- {
- *p++=*q++;
- }
- }
- int main()
- {
- char string[100] = "Izbaci mene rijeci ovu ne sigurno";
- izbaci(string);
- puts(string);
- }
Advertisement
Add Comment
Please, Sign In to add comment