Как узнать количество символов в строке:
Код
new String:my_string[] = "1x3x5x7";
PrintToServer("-> %d", strlen(my_string)); // 7
Как сравнить две строки (true значит, что сравниваем с учетом регистра, false - без) :
Код
new String:x[] = "1q";
new String:y[] = "1q";
if (StrEqual(x, y, true)) PrintToServer("Строки равны");
else PrintToServer("Строки не равны");
Как узнать есть ли фраза/подстрока/символы в строке. Находит первое совпадение и возвращает позицию (индекс), с которой начинается наша фраза. Если совпадений нет, вернёт -1.
Код
new String:my_string[] = "avatar aAng (avatar korRa)";
new x_pos = StrContains(my_string, "tar", true);
PrintToServer("-> %d", x_pos); // 3
Как преобразовать строку в целое число.
Если в строке есть какие-то левые буквы или символы, кроме цифр, то вернёт 0.
Код
new String:my_string[] = "15";
new nuM = StringToInt(my_string);
PrintToServer("-> %d", nuM);
Как преобразовать строку в float число (с точкой):
Код
new String:my_string[] = "15.2";
new Float:nuM = StringToFloat(my_string);
PrintToServer("-> %.1f", nuM);
Как преобразовать целое число в строку:
Код
decl String:my_string[3];
IntToString(15, my_string, 3);
PrintToServer("-> %s", my_string);
Как преобразовать float число в строку:
Код
decl String:my_string[5];
FloatToString(15.0, my_string, 5);
PrintToServer("-> %s", my_string);
Как составить строку из нескольких переменных:
Код
new x = 1, Float:y = 2.0, String:z[] = "cat", String:my_string[75];
Format(my_string, 75, "x = %d, y = %.1f, z = %s", x, y, z);
PrintToServer(my_string); // x = 1, y = 2.0, z = cat
Как избавиться от кавычек по бокам (обрезать):
Код
new String:my_string[] = "\"123\"";
PrintToServer(my_string); // "123"
StripQuotes(my_string);
PrintToServer(my_string); // 123
Как убрать пробелы по бокам:
Код
new String:my_string[] = " 1 2 3 ";
TrimString(my_string);
PrintToServer(my_string);
Как разбить строку по символ(у/ам) или фразе.
Код
decl String:buf[4][10], nuM;
if ((nuM = ExplodeString("xzy - 123-abc", "-", buf, 4, 10)) > 1)
{
PrintToServer("Строка разбита на %d новых:", nuM);
for (new i = 0; i < nuM; i++)
{
TrimString(buf[i]);
PrintToServer(buf[i]);
}
}
else PrintToServer("В строке нет символа -");
// 4 - максимальное количество новых строк
// 10 - максимальная длина каждой строки (кол-во символов)
Как заменить в строке определённые символы на другие.
ReplaceString(String:text[], maxlength, const String:search[], const String:replace[], bool:caseSensitive=true);
Код
text - строка, в которой заменяем символ
maxlength - длина строки
search - символ, который заменяем
replace - то, на что заменяем
caseSensitive - если true (по умолчанию), то учитывается регистр
Будет возвращено количество замененных символов
Пример:
Код
#include <sourcemod>
public OnPluginStart()
{
new String:q[] = "lemur est oreh";
PrintToServer("%d", ReplaceString(q, sizeof(q), "lemur", "enot"));
PrintToServer(q);
}
А если нужно просто удалить символ, например пробел, то так:
Код
ReplaceString(Test, sizeof(Test), " ", "");