Sztringkezelõ függvények Az strlen függvény:Funkciója:Az strlen függvény segítségével lekérdezhetjük az általunk megadott karakterlánc hosszúságát( karaktereinek számát ).
Paraméter( ek ):
string[ ] = A karakterlánc, aminek a méretére kíváncsiak vagyunk.
Visszatérési értéke:A függvény visszatérési értéke a karakterlánc
karaktereinek száma.
Példa:Az alábbi eljárásban lekérdezzük a \'strlen\' karakterlánc hosszúságát, és ha az egyenlõ 6 - tal, akkor visszatérünk az 1 értékkel.
public OnFilterScriptInit( ) {
if( strlen( \"strlen\" ) == 6 ) return 1;
return 0;
}
Az strcat függvény:Funkciója:Az strcat függvény két általunk megadott karakterláncot fûz össze, és az így keletkezett sztringgel tér vissza.
Paraméter( ek ):
dest[ ] = A karakterlánc, amihez hozzáfûzzük a másik karakterláncot.
source[ ] = A karakterlánc, amit hozzáfûzzük a másik karakterlánchoz.
maxlength[ ] = A célkaraktertömb maximális hosszúsága. Ezt nem kötelezõ megadnunk, hiszen a függvény alapból rendel hozzá értéket( a célkaraktertömb méretét ).
Visszatérési értéke:A függvény visszatérési értéke az összecsatolt karakterlánc( dest ).
Példa:Az alábbi eljárásban összefûzünk két sztringet, és kiíratjuk a konzolba.
public OnFilterScriptInit( ) {
new szDest[ 20 ] = \"Megtanultam az \",
szSrc[ 20 ] = \"strcat függvényt!\";
strcat( szDest, szSrc, sizeof szDest + sizeof szSrc ); //Az alapértelmezett hely nem lett volna elegendo, így módosítottam.
print( szDest );
}
Az strmid függvény:Funkciója:Az strmid függvény segítségével egy karakterlánc általunk megadott szakaszát egy célkarakterláncba másolhatjuk.
Paraméter( ek ):
dest[ ] = A célkarakterlánc( amibe másoljuk a másik karakterláncot ).
source[ ] = A karakterlánc, amibõl másolunk a célkarakterláncba.
start = A másolás kezdõpontja( karaktere ).
end = A másolás végpontja( karaktere ).
maxlength[ ] = A célkaraktertömb maximális hosszúsága. Ezt nem kötelezõ megadnunk, hiszen a függvény alapból rendel hozzá értéket( a célkaraktertömb méretét ).
Visszatérési értéke:A függvény visszatérési értéke a célkarakterlánc lesz.
Példa:Az alábbi eljárásban a \'szSrc\' sztringbol kimásolunk 4 karaktert a \'szDest\' sztringbe, majd kiíratjuk a konzolba( meglepo eredménnyel ;) ).
public OnFilterScriptInit( ) {
new szSrc[ 32 ] = \"Ezt a leírást ZeRo írta.\",
szDest[ 12 ];
strmid( szDest, szSrc, 14, 19 );
print( szDest );
}
Az strdel függvény:Funkciója:Az strdel függvény segítségével egy karakterlánc általunk megadott szakaszát törölhetjük.
Paraméter( ek ):
string[ ] = A karakterlánc, amiben törlünk.
start = A törlés kezdõpontja( karaktere ).
end = A törlés végpontja( karaktere ).
Visszatérési értéke:A függvény visszatérési értéke az \'új\' sztring lesz, amibõl töröltünk.
Példa:Az alábbi eljárásban a \'szStr\' sztringbõl kitöröljük az elsõ 3 karaktert( az eredmény \'del\' lesz ).
public OnFilterScriptInit( ) {
new szStr[ 7 ] = \"Strdel\";
strdel( szStr, 0, 3 );
print( szStr );
}
Az strcmp függvény:Funkciója:Az strcmp függvény segítségével összehasonlíthatunk két karakterláncot.
Paraméter( ek ):
string1[ ] = Az egyik karakterlánc.
string2[ ] = A másik karakterlánc.
ignorecase = Logikai értékû paraméter( Hamis[ false ], vagy igaz [ true ], azaz 0, vagy 1 ), ha az értéke igaz( 1 ), akkor az összehasonlításban a kis-, és nagybetûket nem fogja különbségnek számítani.
length = Az összehasonlítás végpontja( karaktere ). Ezt a paramétert nem muszáj megadnunk, hiszen alapértelmezett értéke a sztring( ek ) hosszúsága.
Visszatérési értéke:A függvény visszatérési értéke
0, ha a két sztring egyezik, és valamilyen más szám,
ha nem egyeznek.
Példa:Az alábbi eljárásban összehasonlítunk két karakterláncot; Ha egyeznek, akkor igaz értékkel, ha nem, hamis értékkel térünk vissza( Itt: A visszatérési érték
igaz lesz ).
public OnFilterScriptInit( ) {
if( strcmp( \"Ez hasznos függvény\", \"ez HasznoS FüGGvénY\", true ) == 0 ) return true;
else return false;
}
Az strfind függvény:Funkciója:Az strfind függvény segítségével ellenõrizhetjük, hogy egy adott karakterlánc megtalálható - e egy másikban.
Paraméter( ek ):
string[ ] = A karakterlánc, amit keresünk.
sub[ ] = A karakterlánc, amiben keresünk.
ignorecase = Logikai értékû paraméter( Hamis[ false ], vagy igaz [ true ], azaz 0, vagy 1 ), ha az értéke igaz( 1 ), akkor az összehasonlításban a kis-, és nagybetûket nem fogja különbségnek számítani.
pos = A keresés kezdõpontja( karaktere ). Alapértelmezett értéke van, a karakterlánc eleje.
Visszatérési értéke:A függvény visszatérési értéke
-1, ha a \'string\' karakterlánc nincs benne a \'sub\' sztringben
Egy indexszám( nem -1 ), ami a találat kezdõpontjára( karakterére ) mutat.
Példa:Az alábbi példában igaz értékkel térünk vissza, ha az \'Értem a strfind függvényt\' karakterláncban megtaláljuk a \'strfind\' sztringet.
public OnFilterScriptInit( ) {
if( strfind( \"Értem a strfind függvényt\", \"StRFinD\" ) ) return true;
return false;
}
Az strval függvény:Funkciója:Az strval függvény segítségével egy karakterláncot integerré( egész számmá ) konvertálhatunk.
Paraméter( ek ):
string[ ] = A karakterlánc, amit konvertálni szeretnénk.
Visszatérési értéke:A függvény visszatérési értéke a megadott sztring egész számú alakja lesz.
Példa:Az alábbi példában kiíratjuk a \'2314\' sztringet, majd annak az átkonvertált alakját.
public OnFilterScriptInit( ) {
new szStr[ 12 ] = \"2314\",
iStr = strval( szStr );
print( szStr );
printf( \"%i\", iStr );
return 1;
}
Mivel az eredmény ugyanaz, megmutatnám azoknak, akinek nem esett le, hogy mire is jó ez. Az elõzõ példát módosítva láthatjuk.
public OnFilterScriptInit( ) {
new szStr[ 12 ] = \"2314\",
iStr = strval( szStr );
if( iStr == 2314 ) print( \"Annyi\" ); //Helyes
if( szStr == 2314 ) print( \"Annyi\" ); //Helytelen
return 1;
}
A valstr függvény:Funkciója:A valstr függvény segítségével egy számot konvertálhatunk karakterlánc alakba.
Paraméter( ek ):
dest[ ] = A karakterlánc, ahova konvertálni szeretnénk.
value = Az érték, amit konvertálni szeretnénk.
pack = Logikai értékû paraméter( Hamis[ false ], vagy igaz [ true ], azaz 0, vagy 1 ), ha az értéke igaz( 1 ), akkor \'csomagolja\' az értéket( hivatkozhatunk rá az ispacked, strunpack függvényekkel ).
Visszatérési értéke:A függvény visszatérési értéke a megadott szám karakterlánc alakja lesz.
Példa:Az alábbi példában a 2010 számot sztringgé alakítjuk.
public OnFilterScriptInit( ) {
new szDest[ 6 ];
valstr( szDest, 2010 );
return 1;
}
A leírást még bûvíteni fogom néhány függvénnyel!
Értheto és szép tut, mint mindig :D
Grat
Kössz. ;)
ZeRo
Ez jól jött ..Szép munka ;)
Köszönöm.
ZeRo
az strcat függvényt soha sem értettem, kösz, jól jött, az strcatet viszont használni is fogom. ;)
Örülök, ha segített. ;)
ZeRo
Szép leírás, Grat!
Kiegészítésnek strncpy-t ajánlom.. ;)
··Én használom 8)
Kössz, szerintem ma bovítem még pár függvénnyel.
Foposzt bovítve 3 függvénnyel! ( strfind, strval, valstr ) ZeRo
valamilyen más szám[/quote]
Nem tudom, hogy ez most tudásod hiánya, vagy egyszeru luxus, de szerintem így nem csoda, ha egy-egy függvény használati lehetosége csökken, hisz kevés az információ róla. (Azoknak akik lusták vagy nem értenek angolul)
Amúgy szerintem haszon kis leírás. ;)
stock strcpy( dest[ ], const source[ ], max = 255, len = -1 )
{
new i;
if( len == -1 ) len = strlen( source );
while( i < len && i < max && ( dest[ i ] = source[ i ] ) ) i++;
dest[ i == max ? i - 1 : i ] = 0;
}
Ez a függvény átmásolja a célsztringbe (dest) a forrássztringet (source). A max paraméter a másolás hosszát (?), a len pedig a forrássztring hosszát szolgálja.
Én igazság szerint a függvényt így írnám meg:
stock strcpy( dest[ ], const source[ ], max = 255 )
{
new i, length = strlen( source );
while( i < length && i < max && ( dest[ i ] = source[ i ] ) ) i++;
dest[ i == max ? i - 1 : i ] = 0;
}
GS, nem muxik.. :O
Most végigteszteltem az egész kis kódokat amit leírtál ZeRo, ebbõl az strdeles rossz, mert a string 6 karakterû, igaz, te is 6 karakterût hoztál létre, csak nem számoltál a legelsõ értékkel, a 0-val. :)
így new szStr[7] = \"Strdel\";
Üdv :)
Igaz, mert annak idején nem a Pawnoban írtam ezeket, hanem egybõl ide a szövegdobozba, és hát elkerülte a figyelmemet. :D Kösz, hogy szóltál. ;)
És örülök, hogy valaki ennyire részletesen megnézte a leírásom. :shy: