Ovo je mali tutorial samo zato jer vidim puno vas radi ovu grešku pa ću vam pojasniti zašto ne koristiti strlen u petljama u, pogotovo for petlji u iteraciji.
Primjer:
for(PoÄetno stanje; Uvjet; Izraz)
PoÄetno stanje - Od kuda se petlja poÄinje vrtiti
Uvjet - Iteracija, do kada će se petlja vrtiti
Izraz - PoveÄanje, smanjenje, najÄešće inkrement i dekrement
Primjer u praksi:
new niz[] = "AbCdEfG";
for(new i = (0); i < strlen(niz); ++ i) // POREÅ NO!
Zašto:
new string[128] = "\0"; // stvaramo prazni string
format(string, (sizeof string), "ABCDEF"); // zapisujemo u string ABCDEF
printf("sizeof = %d", (sizeof string)); // Return 128
printf("strlen = %d", strlen(string)); Return 5
strlen prebrojava svako polje, Å¡to bi rezultiralo u petljama da svaku iteraciju prebrojava polja ispoÄetka, Å¡to nepotrebno usporava petlju, ispravan naÄin bi bio da jednom prebrojite polja tj. spremite ih u varijablu koja nije u iteraciji kako bi u iteraciji pristupila petlja već postojećoj varijabli u glavnoj memoriji.
primjer u praksi:
new nesto[] = "AAAAAAAAAA";
for(new i = (0), duzina = strlen(nesto); i < duzina; ++ i) // Ispravno!
ili
new nesto[] = "AAAAAAAA", duzina = strlen(nesto);
for(new i = (0); i < duzina; ++ i) // Ispravno!
Isto je i sa drugim petljama:
while(uvjet)
primjer u praksi:
new i = (0), string[] = "AAAAAA";
while(i < strlen(string)) // krivo!
Razlog je isti kao i sa for petljom, svaku iteraciju će prebrojavati string, a to je ne potrebno tj. može doÄi do lagga
new string[] = "aaaaaaa", i = (0), duzina = strlen(string);
while(i < duzina) // ispravno!
do while
primjer u praksi:
new nesto[] = "AAAAA";
do
{
++ i;
}
while(i < strlen(nesto)); // krivo!
new nesto[] = "AAAAA", duzina = strlen(nesto);
do
{
++ i;
}
while(i < nesto); // Ispravno!
Dobro objasnjen tutorial,no ipak sumnjam da ce ovo svi razumjeti :D
Citat: Streetboy poslato Mart 05, 2013, 22:36:07 POSLE PODNE
Dobro objasnjen tutorial,no ipak sumnjam da ce ovo svi razumjeti :D
Pa šta im ima biti nejasno, objasnio sam samo da kada koriste strlen, ne koriste u iteraciji
Dobar tut( sad mi reci sta ovo znaÄi)
Å ala mala xD
Pohvale
dobar tutorial...povhale ;)
Citat: [iLife]Champa poslato Mart 12, 2013, 23:32:38 POSLE PODNE
Dobar tut( sad mi reci sta ovo znaÄi)
Å ala mala xD
Pohvale
http://wiki.sa-mp.com/wiki/Strlen
Stvarno vrhunski tutorial, pohvale.
Lijepo lijepo :D