- String library
Evo, posto vidim da se svi patite i komplicirate sebi zivot ( a i drugima ) sa stringovima, varijablama, uporedjivanjima i slicno, odlucio sam da vas upoznam sa laksim nacinom. To jeste laksim nacinom izvodjenja kompliciranih naredbi pomocu najjednostavnijih funkcija...
Evo da vas upoznam sa prvom funkcijom koja po mom misljenju i nema neki znacaj, posto stvari koje ja radim ne zahtjevaju ovakve funckije...
1# funckija je i ujedno najrasirenija i najkomplikovanija, iako slabo tko zna sta ona zapravo radi, ja cu vam objasniti:
Strcmp(const string1[], const string2[], bool:ignorecase, length);
Ovo je funckija koja sluzi za uporedjivanje 2 stringa/sloga. Njeni argumenti su:
string1[] - Prvi string
string2[] - Drugi string
bool:ignorecase - E ovo je ono sto vecinu zbunjuje, a sama rijec kaze: "ignorecase", ako stavite true vrijedit ce:
KuCa ce biti isto kao kuca pa time ce returnati 0 ( sjetite se u GF-u uvijek onoga == 0 poslije strmp 🙂 ), a ako stavite false:
kuca nece biti jednako KuCa i onda ce returnati 1 ili -1, zavisno od mjesta stringa ( -1 ako je string1 prije stringa2, a 1 ako je obrnuto)
length ( opcionalno ) - Kada ovo postavite, vi postavljate "daljinu" do koje strcmp upoređuje 2 stringa. npr. Kuca ce biti jednako Kufa ako stavite duzinu = 3.
2# funkcija je strfind. I ona je donekle poznata mnogima...
Da ovo objasnimo možemo se posluziti jednostavnim primjerom iz zivota: Traženje igle u plastu sijena... Upravo to ova funkcija radi, trazi neki skup znakova u stringu.
Strfind(const string[],const sub[],bool:ignorecase=false,pos=0)
const string[] - slog/string u kojem zelimo da nadjemo skup znakova.
const sub[] - skup znakova koji trazimo u stringu.
bool:ignorecase - isto kao i za strcmp ( procitati paragraf iznad za vise informacija )
pos - mjesto u stringu odakle pocinje pretraga
#3 funkcija, manje poznata, ali ipak veoma bitna i jednostavna je funkcija strdel. Ona sluzi za brisanje određenog dijela gdje se u argumentu oznacava raspon brisanja.
Strdel(string[], start, end)
string[] - string iz kojeg zelimo da brisemo znakovni niz.
start – pozicija znaka u stringu
end – pozicija do koje se brise
4# funkcija, isto manje poznata funkcija je strins, koja sluzi za ubacivanje jednog manjeg stringa u drugi veci string.
Strins(string[],const substr[],pos,maxlength=sizeof string)
string[] – string u koji zelite da ubacite ovaj manji
const substr[] – string koji ubacujete
pos – pozicija u stringu odakle zelite da pocnete ubacivanje
maxlength=sizeof string – maksimalna duzina za ubaciti
5# funkcija, veoma popularna funkcija i po meni jedna od najbitnijih je strlen. Ona vraca duzinu stringa u obliku integera.
Strlen(const string[])
const string – string od kojeg odredujemo duzinu
#6 funkcija, veoma popularna, ali i ne manje vazna je funkcija strmid. Ona uzima dio znakova iz stringa/sloga i prebacuje ga u drugi ( male slicnosti sa funkcijom strins ).
Strmid(dest[],const source[],start,end,maxlength=sizeof dest)
dest[] – string u kojeg zelimo da ubacimo dio drugog
const source[] – string koji ubacujemo u dest[]
start – pozicija prvog znaka
end – pozicija posljednjeg znaka
maxlength=sizeof dest – duzina dest[]
7# funkcija, veoma korisna ali gotov zaboravljena funkcija je strpack. Ova funkcija kreira “upakovanog†kopiju stringa.
Strpack(dest[],const source[],maxlength=sizeof dest)
dest[] – string u kojeg zelite da spremite “upakirani†string
const source[] – izvor “upakiranog†stringa
maxlength=sizeof dest – duzina dest[]
8# funkcija koja je povezana sa proslom je strunpack. Ona kreira “ispakovanu†kopiju stringa.
Strunpack(dest[], const source[],maxlength=sizeof dest)
dest[] - string u kojeg zelite da spremite “ispakovani†string
const source[] – izvor “ispakovanog†stringa
maxlength=sizeof dest – duzina dest[]
#9 funkcija jos manje poznata funkcija je valstr. Iako je nepopularna veoma je korisna. Ona pretvara integer u string.
Valstr(dest[], value, bool:packed/unpacked)
dest[] – string u koji zelite da ubacite value
value – integer koji ubacujete u dest[]
bool:packed/unpacked – da li zelite da string bude “upakovan†ili “ispakovan†(true/false)
#16 funkcija, isto slabo popularna funkcija je floatstr. Ona pretvara string u float.
floatstr(const string[])
const string[] - string koji zelis da prtvoris
#11 funkcija, jedna od najpopularnijih je strval. Veoma jednostavna, pretvara string u integer. Obrnuto od valstr.
Strval(string[])
string[] – string za pretvoriti.
#12 funkcija, negdje je ima, negdje nema… Ta funkcija je strcat. Ona nadovezuje jedan string na drugi, kao lanac...
Strcat(dest[], string[],maxlength=sizeof string)
dest[] – string na koji zelite da nadovezete string[]
string[] – string koji nadovezujete na dest[]
maxlength=sizeof string – duzina string[]
#13 funkcija, svima poznata je format. Ova funkcija formatira string po parametrima koje joj vi ponudite...
Format(string[], len, formatirani string, parametri)
string[] – string koji zelite da formatirate
len – duzina string[]-a
formatirani string – rezultat formatiranja
parametri – ovde unosite varijable koje zelita se ispisu u string – u
%c Ubacuje samo jedan znak/slovo.
%d Ubacuje neki broj/integer.
%f Ubacuje racionalni broj/float.
%i Isto kao i %d.
%s Ubacuje niz znakova(string/slog).
%x Ubacuje broj u heksadecimalnom format.
%% Ubacuje znak postotka ‘%’
E to bi bilo to sto se tice objasnjavanja, preostaju samo jos primjeri... Nadam se da ste do sada nesto shvatili...
Primjeri:
#1YCMD:provjeri(playerid, params[], help)
{
#pragma unused help
new ime;
GetPlayerName(playerid, ime, sizeof ime);
new unos;
if(!sscanf(params, "s", unos))
{
if(strcmp(unos, ime, true) == 0)
{
SCM(playerid, -1, "Pogodio si ime!");
}
else return SCM(playerid, -1, "Nazalost pogrijesio si ime!");
}
return 1;
}
#2YCMD:provjeri(playerid, params[], help)
{
#pragma unused help
new string;
GetPlayerName(playerid, ime, sizeof ime);
new unos;
format(string, sizeof string, "Pronadji me!");
if(!sscanf(params, "s", unos))
{
if(strfind(unos, string, true) != -1)
{
SCM(playerid, -1, "Pronasao si slovo!");// ako unese npr. pro - ispisace ovu poruku...
}
else return SCM(playerid, -1, "Nazalost pogrijesio si ime!");
}
return 1;
}
#3new string = "Ostat ce samo A";
strdel(string, 0, 14); // string je sada "A"
#4strins("Ubacit cemo ", "rijec", 32);
//string je sada "Ubacit cemo rijec!"
#5new duzina;
new string;
format(string, sizeof string, “Ovo je stringâ€);
duzina = strval(string);
printf(“Duzina stringa je %iâ€, duzina); // izbacit ce broj 13...
#6new PerPlayer;
new string = “Ubacit cemo ovo u stringâ€;
strmid(PerPlayer, string, 0, strlen(string), 255);
#7new string;
strpack(string, “Ovo cemo upakovati!â€);
#8new string;
new upakovani[24 char]= !â€Ispakovacemo ovo!â€);
srunpack(string, pstring);
#9new string;
new vrijednost = 50;
valstr(string, vrijednost);
#10new string = “15.500604â€;
new floatvrijednost = floatstr(string);
#11new string = “5000058â€;
new integer = strval(string);
#12new string;
strcat(string, “aâ€); strcat(string, “bâ€); strcat(string, “câ€); strcat(string, “dâ€);
print(string); // printat ce “abcdâ€;
#13
Mislim da ovu svi znate, pa nema potrebe za objasnjavanjem...
Eto to bi bilo to sto se tice ovoga tut-a, ako vam nesto nije jasno ili
zelite da saznate vise, slobodno se obratite za pomoc u ovoj temi...
Vecina ovih funkcija je dostupna u standardnom C/C++ programskom
okruzenju.
(Moguce su pravopisne i gramaticke greske u ovome tekstu)
Zaključano
[TuT][Pawn] String library
3,714
pregleda
14
postova
Ova tema je zaključana. Samo moderatori i administratori mogu odgovarati.
pre 14 godina
pre 14 godina
strcmp - "najkompliciranija", "iako slabo tko zna sta ona zapravo radi" ? 😄
strfind - "mada se izbjegava iz opravdanih razloga" ?
kakve trave ti pusis daj mi reci 😄
mislim da za vecinu ako se procita ime i argumenti se zna sta radi, a ti tu plasis ko da su ne znam sta, joj joj, nije dobro se drogirat 😉
strfind - "mada se izbjegava iz opravdanih razloga" ?
kakve trave ti pusis daj mi reci 😄
mislim da za vecinu ako se procita ime i argumenti se zna sta radi, a ti tu plasis ko da su ne znam sta, joj joj, nije dobro se drogirat 😉
pre 14 godina
Omega-300 wrote on July 5, 2011, 4:34 pm:
strcmp - "najkompliciranija", "iako slabo tko zna sta ona zapravo radi" ? 😄
strfind - "mada se izbjegava iz opravdanih razloga" ?
kakve trave ti pusis daj mi reci 😄
mislim da za vecinu ako se procita ime i argumenti se zna sta radi, a ti tu plasis ko da su ne znam sta, joj joj, nije dobro se drogirat 😉
strfind - "mada se izbjegava iz opravdanih razloga" ?
kakve trave ti pusis daj mi reci 😄
mislim da za vecinu ako se procita ime i argumenti se zna sta radi, a ti tu plasis ko da su ne znam sta, joj joj, nije dobro se drogirat 😉
Hajde ako si ti neki genijalac objasni nesto iz pawn library-a...
Mogu se kladiti da pojma nemas...
pre 14 godina
EM|Pacino wrote on July 5, 2011, 4:34 pm:
strcmp - "najkompliciranija", "iako slabo tko zna sta ona zapravo radi" ? 😄
strfind - "mada se izbjegava iz opravdanih razloga" ?
kakve trave ti pusis daj mi reci 😄
mislim da za vecinu ako se procita ime i argumenti se zna sta radi, a ti tu plasis ko da su ne znam sta, joj joj, nije dobro se drogirat 😉
strfind - "mada se izbjegava iz opravdanih razloga" ?
kakve trave ti pusis daj mi reci 😄
mislim da za vecinu ako se procita ime i argumenti se zna sta radi, a ti tu plasis ko da su ne znam sta, joj joj, nije dobro se drogirat 😉
Hajde ako si ti neki genijalac objasni nesto iz pawn library-a...
Mogu se kladiti da pojma nemas...
Ja sam Bullet, Joe Bullet, tako da mi nemoj srat.
pre 14 godina
Prije svega, jako lijep tutorial siguran sam da će koristiti nekima. Svaka Äast na trudu. - Iako me puno nasmijalo neka tvoja miÅ¡ljenja o npr. 'strfind' da se izbjegava ( hehehe )
ignorecase - ne kaže sama rijeÄ, jednostavnije to je on/off gumb strcmp komande.
Također, pretavaranje integer u float je isto jako važno, to radi ova naredba: http://wiki.sa-mp.com/wiki/Floatround
Iako nije samo za to, ali između ostalog.
format nije funkcija. Tj. jest jedna vrsta funkcije. ima 'optional'
Heh, donekle toÄno ali nije isto. %i formatira integer u 'pokretu' dok je %d stalni integer
Vidim da u svakom svom radu koji objaviÅ¡ poÄneÅ¡ neÅ¡to sa C/C++ ajde mi sada reci kakve veze to ima sa ovom temom? :S
- Mislim nemam ništa protiv ali samo zbunjuješ one koji se ne razumiju ni u PAWN, a kamoli u C/C++ ako se toliko voliš hvaliti ili se želiš dokazati sa tim C/C++ onda napravi neki plugin, a ne samo filozofirati da ispadne da se razumiješ.
Bullet pusti, nemoj se svađati. Jednostavno se želi dokazati.
A Pacino mislim da Bulletu nemaš šta posebno govoriti jer je on u Dev. Timu sa Yless-om, zajedno rade YSI tako da to sve objašnjava.
EM|Pacino wrote on July 5, 2011, 4:09 pm:
bool:ignorecase - E ovo je ono sto vecinu zbunjuje, a sama rijec kaze: "ignorecase", ako stavite true vrijedit ce:
ignorecase - ne kaže sama rijeÄ, jednostavnije to je on/off gumb strcmp komande.
EM|Pacino wrote on July 5, 2011, 4:09 pm:
funkcija, jedna od najpopularnijih je strval. Veoma jednostavna, pretvara string u integer. Obrnuto od valstr.
Također, pretavaranje integer u float je isto jako važno, to radi ova naredba: http://wiki.sa-mp.com/wiki/Floatround
Iako nije samo za to, ali između ostalog.
EM|Pacino wrote on July 5, 2011, 4:09 pm:
funkcija, svima poznata je format. Ova funkcija formatira string po parametrima koje joj vi ponudite...
format nije funkcija. Tj. jest jedna vrsta funkcije. ima 'optional'
EM|Pacino wrote on July 5, 2011, 4:09 pm:
%i Isto kao i %d.
Heh, donekle toÄno ali nije isto. %i formatira integer u 'pokretu' dok je %d stalni integer
EM|Pacino wrote on July 5, 2011, 4:09 pm:
Vecina ovih funkcija je dostupna u standardnom C/C++ programskom okruzenju.
Vidim da u svakom svom radu koji objaviÅ¡ poÄneÅ¡ neÅ¡to sa C/C++ ajde mi sada reci kakve veze to ima sa ovom temom? :S
- Mislim nemam ništa protiv ali samo zbunjuješ one koji se ne razumiju ni u PAWN, a kamoli u C/C++ ako se toliko voliš hvaliti ili se želiš dokazati sa tim C/C++ onda napravi neki plugin, a ne samo filozofirati da ispadne da se razumiješ.
Omega-300 wrote on July 6, 2011, 10:17 am:
Ja sam Bullet, Joe Bullet, tako da mi nemoj srat.
Bullet pusti, nemoj se svađati. Jednostavno se želi dokazati.
A Pacino mislim da Bulletu nemaš šta posebno govoriti jer je on u Dev. Timu sa Yless-om, zajedno rade YSI tako da to sve objašnjava.
pre 14 godina
Quote from July 5, 2011, 4:09 pm:
bool:ignorecase - E ovo je ono sto vecinu zbunjuje, a sama rijec kaze: "ignorecase", ako stavite true vrijedit ce:
ignorecase - ne kaže sama rijeÄ, jednostavnije to je on/off gumb strcmp komande.
EM|Pacino wrote on July 5, 2011, 4:09 pm:
funkcija, jedna od najpopularnijih je strval. Veoma jednostavna, pretvara string u integer. Obrnuto od valstr.
Također, pretavaranje integer u float je isto jako važno, to radi ova naredba: http://wiki.sa-mp.com/wiki/Floatround
Iako nije samo za to, ali između ostalog.
EM|Pacino wrote on July 5, 2011, 4:09 pm:
funkcija, svima poznata je format. Ova funkcija formatira string po parametrima koje joj vi ponudite...
format nije funkcija. Tj. jest jedna vrsta funkcije. ima 'optional'
EM|Pacino wrote on July 5, 2011, 4:09 pm:
%i Isto kao i %d.
Heh, donekle toÄno ali nije isto. %i formatira integer u 'pokretu' dok je %d stalni integer
EM|Pacino wrote on July 5, 2011, 4:09 pm:
Vecina ovih funkcija je dostupna u standardnom C/C++ programskom okruzenju.
Vidim da u svakom svom radu koji objaviÅ¡ poÄneÅ¡ neÅ¡to sa C/C++ ajde mi sada reci kakve veze to ima sa ovom temom? :S
- Mislim nemam ništa protiv ali samo zbunjuješ one koji se ne razumiju ni u PAWN, a kamoli u C/C++ ako se toliko voliš hvaliti ili se želiš dokazati sa tim C/C++ onda napravi neki plugin, a ne samo filozofirati da ispadne da se razumiješ.
Omega-300 wrote on July 6, 2011, 10:17 am:
Ja sam Bullet, Joe Bullet, tako da mi nemoj srat.
Bullet pusti, nemoj se svađati. Jednostavno se želi dokazati.
A Pacino mislim da Bulletu nemaš šta posebno govoriti jer je on u Dev. Timu sa Yless-om, zajedno rade YSI tako da to sve objašnjava.
Nisam znao da je on... Ali ja to samo uporedjujem samo radi reda (C), jer je poprilicno slican...
pre 14 godina
|β3tα|_eXtreme_ wrote on July 6, 2011, 10:42 am:
Takodje bravo za trud, za neke stvari sam se nasmejao kao 265 i Bullet 😄
Posto vidim da bas zelis da se pokazes kao sto rece 265 napravi neki dobar plugin...
Posto vidim da bas zelis da se pokazes kao sto rece 265 napravi neki dobar plugin...
Hajde eto, ocekujte neki plugin u toku dana... samo da smislim sta cu...
pre 14 godina
Quote from July 6, 2011, 10:56 am:
Nemoj neke osti nego neki pošten plugin, mislim da svatko zna napraviti neku ost u plugin-u. Nego napravi npr. Facebook chat za SA:MP da se mozes preko FB-a spojit nes kao IRC
Hajd ok, pokusat cu to srediti 😄
btw. Otisli smo offtopic skroz xD
Morate biti prijavljeni da biste odgovorili na ovu temu.
Prijava