Prethodna tema :: Sljedeća tema |
Autor/ica |
Poruka |
bimar Forumaš(ica)


Pridružen/a: 16. 11. 2008. (14:45:25) Postovi: (61)16
Lokacija: arkadija
|
Postano: 16:13 ned, 3. 5. 2009 Naslov: Trazenje podstringa |
|
|
trebam napisati funkciju koja prima 2 stringa (string i podstring) te vraća mjesto u stringu (većem) gdje počinje podstring
primjer: učitamo s1=danas je sunčan dan
s2=sunčan
funkcija treba vratiti 9....jer je sunčan počinje na 9. mjestu u s1......
[code:1]
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int stringulja( char s1[], char s2[]){
int i,j, istina=0,rezultat;
for (i=0; i<=strlen(s1); i++)
if (s1[i]==s2[0])
{istina=1; rezultat=i;
{ for (j=0; j<=strlen(s2);j++)
if (s1[i+j]!=s2[j]) istina=0;}}
return rezultat;}
int main(void)
{ char s1[10], s2[10];
printf("upisite string");
scanf("%[^\n]", s1);
printf("upisite podstring");
scanf("%[^\n]", s2);
printf(" mjesto u stringu s1 gdje se pojavljuje(pocinje) string s2 je %d", stringulja(s1,s2));
scanf("%%");
return 0;
}
[/code:1]
evo moga rješenja, koje se ruši odmah... bio bih jako zahvalan za nekakvu pomoć....
fala :D
trebam napisati funkciju koja prima 2 stringa (string i podstring) te vraća mjesto u stringu (većem) gdje počinje podstring
primjer: učitamo s1=danas je sunčan dan
s2=sunčan
funkcija treba vratiti 9....jer je sunčan počinje na 9. mjestu u s1......
Kod: |
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int stringulja( char s1[], char s2[]){
int i,j, istina=0,rezultat;
for (i=0; i<=strlen(s1); i++)
if (s1[i]==s2[0])
{istina=1; rezultat=i;
{ for (j=0; j<=strlen(s2);j++)
if (s1[i+j]!=s2[j]) istina=0;}}
return rezultat;}
int main(void)
{ char s1[10], s2[10];
printf("upisite string");
scanf("%[^\n]", s1);
printf("upisite podstring");
scanf("%[^\n]", s2);
printf(" mjesto u stringu s1 gdje se pojavljuje(pocinje) string s2 je %d", stringulja(s1,s2));
scanf("%%");
return 0;
}
|
evo moga rješenja, koje se ruši odmah... bio bih jako zahvalan za nekakvu pomoć....
fala
|
|
[Vrh] |
|
vsego Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol: 
Lokacija: /sbin/init
|
Postano: 16:28 ned, 3. 5. 2009 Naslov: |
|
|
Kad vec koristis [tt]string.h[/tt], pomozi si s funkcijama
[code:1]#include <string.h>
char *strstr(const char *haystack, const char *needle);
char *strcasestr(const char *haystack, const char *needle);[/code:1]
(zadnja ne radi u M$ovim compilerima; oni imaju neku nestandardu, ne znam napamet koju, no mislim da pise u mojoj skripti)
Dakle,
[code:1]p = strstr(s, "nesto");
printf("Pozicija je %d.\n", p - s);[/code:1]
8)
Inace, obje petlja funkcije [tt]stringulja()[/tt] idu predaleko, te ne koristis nigdje vrijednost varijable [tt]istina[/tt] (sto bi trebalo iskoristiti). ;)
Ako treba vise infoa, samo pitaj. 8)
Kad vec koristis string.h, pomozi si s funkcijama
Kod: | #include <string.h>
char *strstr(const char *haystack, const char *needle);
char *strcasestr(const char *haystack, const char *needle); |
(zadnja ne radi u M$ovim compilerima; oni imaju neku nestandardu, ne znam napamet koju, no mislim da pise u mojoj skripti)
Dakle,
Kod: | p = strstr(s, "nesto");
printf("Pozicija je %d.\n", p - s); |
Inace, obje petlja funkcije stringulja() idu predaleko, te ne koristis nigdje vrijednost varijable istina (sto bi trebalo iskoristiti).
Ako treba vise infoa, samo pitaj.
_________________ U pravilu ignoriram pitanja u krivim topicima i kodove koji nisu u [code]...[/code] blokovima.
Takodjer, OBJASNITE sto vas muci! "Sto mi je krivo?", bez opisa u cemu je problem, rijetko ce zadobiti moju paznju. 
|
|
[Vrh] |
|
bimar Forumaš(ica)


Pridružen/a: 16. 11. 2008. (14:45:25) Postovi: (61)16
Lokacija: arkadija
|
|
[Vrh] |
|
vsego Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol: 
Lokacija: /sbin/init
|
|
[Vrh] |
|
bimar Forumaš(ica)


Pridružen/a: 16. 11. 2008. (14:45:25) Postovi: (61)16
Lokacija: arkadija
|
Postano: 17:31 ned, 3. 5. 2009 Naslov: |
|
|
[code:1]
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int stringulja( char s1[], char s2[]){
int i,j, istina=0,rezultat;
for (i=0; i<=strlen(s1)-1; i++)
if (s1[i]==s2[0])
{istina=1; rezultat=i;
{ for (j=0; j<=strlen(s2)-1;j++)
if (s1[i+j]!=s2[j]) istina=0;}}
if (istina) return rezultat;
return -1;}
int main(void)
{ char s1[10], s2[10];
printf("upisite string i podstring");
scanf("%[^\n] ", s1);
scanf("%[^\n]", s2);
if (stringulja(s1,s2)==-1) printf("podstring se ne pojavljuje u stringu"); else
printf(" \n mjesto u stringu s1 gdje se pojavljuje(pocinje) string s2 je %d", stringulja(s1,s2));
scanf("%%");
return 0;
}
[/code:1]
hvala :D
Kod: |
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int stringulja( char s1[], char s2[]){
int i,j, istina=0,rezultat;
for (i=0; i<=strlen(s1)-1; i++)
if (s1[i]==s2[0])
{istina=1; rezultat=i;
{ for (j=0; j<=strlen(s2)-1;j++)
if (s1[i+j]!=s2[j]) istina=0;}}
if (istina) return rezultat;
return -1;}
int main(void)
{ char s1[10], s2[10];
printf("upisite string i podstring");
scanf("%[^\n] ", s1);
scanf("%[^\n]", s2);
if (stringulja(s1,s2)==-1) printf("podstring se ne pojavljuje u stringu"); else
printf(" \n mjesto u stringu s1 gdje se pojavljuje(pocinje) string s2 je %d", stringulja(s1,s2));
scanf("%%");
return 0;
}
|
hvala
|
|
[Vrh] |
|
vsego Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol: 
Lokacija: /sbin/init
|
Postano: 17:52 ned, 3. 5. 2009 Naslov: |
|
|
Jednostavna situacija:
[tt]s1 = "aba"; s2 = "abcdefghi";[/tt]
U vanjskoj petlji [tt]i[/tt] ide od 0 do 2; kad na to dodas [tt]j[/tt] koji ide od 0 do 8, dobijes u [tt]s1[i+j][/tt] da gledas element [tt]s1[10][/tt] (u zadnjem koraku), sto ne pripada nizu (stringu) [tt]s1[/tt]!. :ccc:
Kad se to ispravi, ako uneses stringove "[tt]xabyabz[/tt]" i "[tt]ab[/tt]", dobit ces poruku
[tt]mjesto u stringu s1 gdje se pojavljuje(pocinje) string s2 je 4[/tt],
sto nije prvo mjesto podstringa (kako bih ocekivao od ovakve funkcije). :?
Jos gore, ako uneses stringove "[tt]xabyaba[/tt]" i "[tt]ab[/tt]", dobit ces poruku
[tt]podstring se ne pojavljuje u stringu[/tt], :shock:
jer ces abog ovog zadnjeg "[tt]a[/tt]" resetirati flag [tt]istina[/tt] iako si vec nasao podstring. :ccc:
Uputa: onaj [tt]if()[/tt] s [tt]return[/tt]-om mora ici u vanjsku petlju, a ne izvan nje. 8) Uvjet druge petlje se lako sredi da ne ide predaleko. ;) Vanjska petlja je sada ok (prije nije imala onaj "[tt]-1[/tt]"). 8)
Ne dajem ti konacno rjesenje, jer to mozes negdje i sam naci ([b]mazda[/b] cak u nekom nastavnom materijalu i/ili starom ispitu/kolokviju na Prog 2); preferiram hintove, da covjek sam skuzi. ;)
Jednostavna situacija:
s1 = "aba"; s2 = "abcdefghi";
U vanjskoj petlji i ide od 0 do 2; kad na to dodas j koji ide od 0 do 8, dobijes u s1[i+j] da gledas element s1[10] (u zadnjem koraku), sto ne pripada nizu (stringu) s1!.
Kad se to ispravi, ako uneses stringove "xabyabz" i "ab", dobit ces poruku
mjesto u stringu s1 gdje se pojavljuje(pocinje) string s2 je 4,
sto nije prvo mjesto podstringa (kako bih ocekivao od ovakve funkcije).
Jos gore, ako uneses stringove "xabyaba" i "ab", dobit ces poruku
podstring se ne pojavljuje u stringu,
jer ces abog ovog zadnjeg "a" resetirati flag istina iako si vec nasao podstring.
Uputa: onaj if() s return-om mora ici u vanjsku petlju, a ne izvan nje. Uvjet druge petlje se lako sredi da ne ide predaleko. Vanjska petlja je sada ok (prije nije imala onaj "-1").
Ne dajem ti konacno rjesenje, jer to mozes negdje i sam naci (mazda cak u nekom nastavnom materijalu i/ili starom ispitu/kolokviju na Prog 2); preferiram hintove, da covjek sam skuzi.
_________________ U pravilu ignoriram pitanja u krivim topicima i kodove koji nisu u [code]...[/code] blokovima.
Takodjer, OBJASNITE sto vas muci! "Sto mi je krivo?", bez opisa u cemu je problem, rijetko ce zadobiti moju paznju. 
|
|
[Vrh] |
|
bimar Forumaš(ica)


Pridružen/a: 16. 11. 2008. (14:45:25) Postovi: (61)16
Lokacija: arkadija
|
|
[Vrh] |
|
|