Hteo bih da pretrazim neki string tako da mi ispise koliko puta se neki znak npr 'A' puta nalazi u njemu... Ovo znam uraditi preko ciklusa if(niz== 'a') j++, ali ja bih to hteo da uradim preko strchr()... Pokusavao sa ali nijedna ideja nije davala rezultate... moze pomoc?:)
pretrazivanje stringa
Zaključano
Zakačeno
Code:
#include <string.h>
int main()
{
char s[] = "Hello, World!";
char c = '!';
char* found = s;
int counter = 0;
while (1)
{
found = strchr(found, c);
if (found == NULL)
break;
counter++;
found++;
}
printf("Char '%c' found %d times\n", c, counter);
return 1;
}
#include <string.h>
int main()
{
char s[] = "Hello, World!";
char c = '!';
char* found = s;
int counter = 0;
while (1)
{
found = strchr(found, c);
if (found == NULL)
break;
counter++;
found++;
}
printf("Char '%c' found %d times\n", c, counter);
return 1;
}
Potpis
Sveti Avgustin: "Dobar hrišćanin treba da se kloni matematičara i svih onih koji daju lažna proročanstva. Postoji opasnost da su matematičari već sklopili pakt sa Đavolom, da pomrače čovekov um i da ga okuju okovima pakla."
hvala brate, ali jos nismo ucili takav primer zadatka... :(
A kakav je ovo primer zadatka? :)
Potpis
Sveti Avgustin: "Dobar hrišćanin treba da se kloni matematičara i svih onih koji daju lažna proročanstva. Postoji opasnost da su matematičari već sklopili pakt sa Đavolom, da pomrače čovekov um i da ga okuju okovima pakla."
pa malo tezi :)) jos nismo ucili tako nesto :(
mada ja to razumem (90%) ali ja bih trebao da na drugaciji nacin uradim zadat tj onaj pocetnicki :)
Npr. ciklus traje od strlen(string), kad nadje uveca brojac, nastavi od te adres s obzirom da je sad uslov da ciklus traje od strlen("preostali deo stringa") sto znaci da ja moram da isecem ovaj pretrazeni deo stringa... Nadam se da si me razumeo? xD
mada ja to razumem (90%) ali ja bih trebao da na drugaciji nacin uradim zadat tj onaj pocetnicki :)
Npr. ciklus traje od strlen(string), kad nadje uveca brojac, nastavi od te adres s obzirom da je sad uslov da ciklus traje od strlen("preostali deo stringa") sto znaci da ja moram da isecem ovaj pretrazeni deo stringa... Nadam se da si me razumeo? xD
Rekao si koriscenjem strchr(). strlen() ne vraca nikakvu adresu vec duzinu stringa. strchr() vraca adresu nadjenog karaktera i bas on "sece" string tamo gde je nasao trazeni karakter. Nisam siguran da razumem kako treba da ide postupak.
Potpis
Sveti Avgustin: "Dobar hrišćanin treba da se kloni matematičara i svih onih koji daju lažna proročanstva. Postoji opasnost da su matematičari već sklopili pakt sa Đavolom, da pomrače čovekov um i da ga okuju okovima pakla."
Probaj for(i=0;i<strlen(string);i++)
if(string=='A')
j++;
P.S. Ako si pomenuo pocetnicki nacin zaboravi na strchr() i probaj ovo gore.
if(string=='A')
j++;
P.S. Ako si pomenuo pocetnicki nacin zaboravi na strchr() i probaj ovo gore.
izmenjeno 1 put, poslednji put X Files 22.02.2008. u 19:28
Izmene poruke
- X Files22.02.2008. u 19:28zapis iz teksta poruke
ISPRAVKA: if(string=='A')
EDIT X Files:
... i ne zaboravi:
EDIT X Files:
Code:
ISPRAVKA: if(string[i]=='A')
ISPRAVKA: if(string[i]=='A')
... i ne zaboravi:
Code:
if(string[i]=='A' || string[i]=='a')
ako se a i A broje isto.
if(string[i]=='A' || string[i]=='a')
[i] i [/i] su predviđeni za ITALIC.
Zato kod upisuj između tagova za kod:
[code]
int main ( int argc, char *argv[] )
{
// ...
return 0;
}
[/code]
Zato kod upisuj između tagova za kod:
[code]
int main ( int argc, char *argv[] )
{
// ...
return 0;
}
[/code]
Ok, hvala na pomoci :)) Nije mi bio tu komp tako da nisam stigao da odgovorim odma
hvala jos jednom :))
hvala jos jednom :))