summaryrefslogtreecommitdiff
path: root/sourcemod/scripting/include/smlib/strings.inc
diff options
context:
space:
mode:
authoraura <nw@moneybot.cc>2026-02-17 23:42:09 +0100
committeraura <nw@moneybot.cc>2026-02-17 23:42:09 +0100
commit5e2eb7d67ae933b7566f1944d0bb7744da03d586 (patch)
tree054acff1113270a9cd07933df760f3768c1b6853 /sourcemod/scripting/include/smlib/strings.inc
parent341db13a008dc12bb22ceb50452d93d01476308c (diff)
move source stuff to its own folder
Diffstat (limited to 'sourcemod/scripting/include/smlib/strings.inc')
-rw-r--r--sourcemod/scripting/include/smlib/strings.inc228
1 files changed, 0 insertions, 228 deletions
diff --git a/sourcemod/scripting/include/smlib/strings.inc b/sourcemod/scripting/include/smlib/strings.inc
deleted file mode 100644
index b7cf9b4..0000000
--- a/sourcemod/scripting/include/smlib/strings.inc
+++ /dev/null
@@ -1,228 +0,0 @@
-#if defined _smlib_strings_included
- #endinput
-#endif
-#define _smlib_strings_included
-
-#include <sourcemod>
-#include <smlib/math>
-
-/**
- * Checks if the string is numeric.
- * This correctly handles + - . in the String.
- *
- * @param str String to check.
- * @return True if the String is numeric, false otherwise..
- */
-stock bool String_IsNumeric(const char[] str)
-{
- int x=0;
- int dotsFound=0;
- int numbersFound=0;
-
- if (str[x] == '+' || str[x] == '-') {
- x++;
- }
-
- while (str[x] != '\0') {
-
- if (IsCharNumeric(str[x])) {
- numbersFound++;
- }
- else if (str[x] == '.') {
- dotsFound++;
-
- if (dotsFound > 1) {
- return false;
- }
- }
- else {
- return false;
- }
-
- x++;
- }
-
- if (!numbersFound) {
- return false;
- }
-
- return true;
-}
-
-/**
- * Trims a string by removing the specified chars from beginning and ending.
- * Removes all ' ', '\t', '\r', '\n' characters by default.
- * The Output String can be the same as the Input String.
- *
- * @param str Input String.
- * @param output Output String (Can be the as the input).
- * @param size Size of the output String.
- * @param chars Characters to remove.
- */
-stock void String_Trim(const char[] str, char[] output, int size, const char[] chrs=" \t\r\n")
-{
- int x=0;
- while (str[x] != '\0' && FindCharInString(chrs, str[x]) != -1) {
- x++;
- }
-
- x = strcopy(output, size, str[x]);
- x--;
-
- while (x >= 0 && FindCharInString(chrs, output[x]) != -1) {
- x--;
- }
-
- output[++x] = '\0';
-}
-
-/**
- * Removes a list of strings from a string.
- *
- * @param buffer Input/Output buffer.
- * @param removeList A list of strings which should be removed from buffer.
- * @param size Number of Strings in the List.
- * @param caseSensitive If true, comparison is case sensitive. If false (default), comparison is case insensitive.
- */
-stock void String_RemoveList(char[] buffer, const char[][] removeList, int size, bool caseSensitive=false)
-{
- for (int i=0; i < size; i++) {
- ReplaceString(buffer, SIZE_OF_INT, removeList[i], "", caseSensitive);
- }
-}
-
-/**
- * Converts the whole String to lower case.
- * Only works with alphabetical characters (not ÖÄÜ) because Sourcemod suxx !
- * The Output String can be the same as the Input String.
- *
- * @param input Input String.
- * @param output Output String.
- * @param size Max Size of the Output string
- */
-stock void String_ToLower(const char[] input, char[] output, int size)
-{
- size--;
-
- int x=0;
- while (input[x] != '\0' && x < size) {
-
- output[x] = CharToLower(input[x]);
-
- x++;
- }
-
- output[x] = '\0';
-}
-
-/**
- * Converts the whole String to upper case.
- * Only works with alphabetical characters (not öäü) because Sourcemod suxx !
- * The Output String can be the same as the Input String.
- *
- * @param input Input String.
- * @param output Output String.
- * @param size Max Size of the Output string
- */
-stock void String_ToUpper(const char[] input, char[] output, int size)
-{
- size--;
-
- int x=0;
- while (input[x] != '\0' && x < size) {
-
- output[x] = CharToUpper(input[x]);
-
- x++;
- }
-
- output[x] = '\0';
-}
-
-/**
- * Generates a random string.
- *
- *
- * @param buffer String Buffer.
- * @param size String Buffer size (must be length+1)
- * @param length Number of characters being generated.
- * @param chrs String for specifying the characters used for random character generation.
- * By default it will use all letters of the alphabet (upper and lower) and all numbers.
- * If you pass an empty String, it will use all readable ASCII characters (33 - 126)
- */
-stock void String_GetRandom(char[] buffer, int size, int length=32, const char[] chrs="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234556789")
-{
- int random, len;
- size--;
-
- if (chrs[0] != '\0') {
- len = strlen(chrs) - 1;
- }
-
- int n = 0;
- while (n < length && n < size) {
-
- if (chrs[0] == '\0') {
- random = Math_GetRandomInt(33, 126);
- buffer[n] = random;
- }
- else {
- random = Math_GetRandomInt(0, len);
- buffer[n] = chrs[random];
- }
-
- n++;
- }
-
- buffer[length] = '\0';
-}
-
-/**
- * Checks if string str starts with subString.
- *
- *
- * @param str String to check
- * @param subString Sub-String to check in str
- * @return True if str starts with subString, false otherwise.
- */
-stock bool String_StartsWith(const char[] str, const char[] subString)
-{
- int n = 0;
- while (subString[n] != '\0') {
-
- if (str[n] == '\0' || str[n] != subString[n]) {
- return false;
- }
-
- n++;
- }
-
- return true;
-}
-
-/**
- * Checks if string str ends with subString.
- *
- *
- * @param str String to check
- * @param subString Sub-String to check in str
- * @return True if str ends with subString, false otherwise.
- */
-stock bool String_EndsWith(const char[] str, const char[] subString)
-{
- int n_str = strlen(str) - 1;
- int n_subString = strlen(subString) - 1;
-
- if(n_str < n_subString) {
- return false;
- }
-
- while (n_str != 0 && n_subString != 0) {
-
- if (str[n_str--] != subString[n_subString--]) {
- return false;
- }
- }
-
- return true;
-}