String functions for SA-MP Pawn scripting.
strgetfirstc
- Get the first character of a stringstrgetc
- Get a character from a specific index in a string.isempty
- Find out if a string is empty.isequal
- Compare two strings.strexplode
- Split a string by a given delimiter.strimplode
- Glue together strings into one.strreplace
- Replace occurrences of the search string with the replacement string.strtrim
- Trim whitespace or a specific group of characters from a string.strcount
- Count substrings.strfromliteral
- Read a string from a PAWN string literal.strtoliteral
- Build a PAWN string literal from a given string.strfrombin
- Convert an array to a string.strtobin
- Convert a string to an array.strcatmid
- Concatenate a part of another string.strurlencode
- URL encode a string.strurldecode
- Decode an encoded URL.strpad
- Pad edge(s) of a string with spaces.strwrap
- Wrap a string inside two other strings.utf8encode
- Encode a string into UTF-8 (assuming it's ISO-8859-1).utf8decode
- Decode a UTF-8 encoded string.
All of the functions above require one argument to be the output variable - the functions listed below do not.
Note, however, the max size of returned strings is STRLIB_RETURN_SIZE
(default 128). Using large sizes will add lots of heap usage.
sprintf(format[], ...)
- Same as the nativeformat
, but it returns the output.ret_utf8encode(input[])
ret_utf8decode(input[])
ret_strpad(string[], length, substr[] = !" ", edge = edge_both, trim_first = true, trim_chars[] = "")
ret_strwrap(left[], string[], right[])
ret_strcatmid(string[], source[], start = 0, end = -1)
ret_strfrombin(input[], inputlength = sizeof(input))
ret_strimplode(glue[], ...)
ret_strreplace(string[], search[], replacement[], ignorecase = false, pos = 0, limit = -1)
ret_strfromliteral(input[], &pos = 0)
ret_strtoliteral(input[])
ret_strtrim(string[], chars[] = "", trim_edges:edges = trim_both)
ret_strurldecode(input[])
ret_strurlencode(input[], pack = false)
ret_strpack(source[])
ret_strunpack(source[])
ret_strcat(string1[], string2[])
ret_strmid(source[], start, end)
ret_strins(string[], substr[], pos)
ret_strdel(string[], start, end)
ret_valstr(value, pack = false)
ret_GetPlayerName(playerid, pack = false)
SetGameModeText(sprintf("Hello %s. %d %d %d.", "world", 1, 2, 3));
// GameMode text is now: Hello world. 1 2 3.
new str1[] = "HELLO", str2[] = "hello";
if (isequal(str1, str2)) // false
if (isequal(str1, str2, .ignorecase = true)) // true
new output[10][10], count;
count = strexplode(output, "I, like, jolly, ranchers", ",");
for (new i = 0; i < count; i++)
print(output[i]);
/* Output:
I
like
jolly
ranchers
*/
new output[128];
strimplode(" ~~ ", output, sizeof(output), "I", "like", "jolly", "ranchers");
// output = "I ~~ like ~~ jolly ~~ ranchers"
new string[128] = "Hello world";
strreplace(string, "world", "earth"); // string = "Hello earth"
strreplace(string, "HELLO", "Hola"); // string = "Hello earth" (no match for "HELLO")
strreplace(string, "HELLO", "Hola", .ignorecase = true); // string = "Hola earth"
new string[128] = " XXbla blaY ";
strtrim(string); // string = "XXbla blaY"
strtrim(string, "XY"); // string = "bla bla"
string = "/Users/home/bla/bla/";
strtrim(string, "/\\", .edges = trim_right); // string = "/Users/home/bla/bla"
new string[] = "cow COW cow COW sheep cow", count;
count = strcount(strong, "cow"); // count = 3
count = strcount(strong, "cow", .ignorecase = true); // count = 5
new data[] = {0x11223344, 0x55667788, 0x99AABBCC, 0xDDEEFF00};
new string[128];
strfrombin(string, data); // string = "112233445566778899AABBCCDDEEFF00"