Pawn :: Основы скриптинга
Работа со строками
Начнем с функции strlen – эта функция возвращает длину строки. При подсчете символов, пробелы считаются тоже, так как также являются символами.
new string[20] = “pawno scripting”;
printf(“длина строки: %s”,strlen(string)) //выведет в консоли сервера длину строки 15
Далее мы рассмотрим функцию strval, которая конвертирует строку в число. У нас есть строка 21. Именно «строка», если через format мы попытаемся вывести через строковой тип «%d», то получим совсем не то, что нам нужно. Если же с помощью данной функции мы сконвертируем строку в число, то мы получим соответствующий результат, вот пример:
new string[2] = “21”;
printf(“значение string = %s”,strval(string)) // 21
Есть обратная функция – valstr, которая конвертирует число в строку, она аналогична strval, только выполняет обратную операцию, поэтому объяснять данную функцию не стану.
Теперь возвратимся к первому примеру, только работать мы будем с функцией strdel, которая удаляет часть строки.
new string[20] = “pawno scripting”;
strdel(string,6,15);
printf(“%s”, string) //выведет в консоли сервера “pawno”
Конечно, если вы хотите вырезать, например с 6 символа до конца строки, то чтобы не считать символы до конца, разумнее вместо цифры 15 поставить функцию strlen, которая узнает длину строки. Вот как это показано на примере ниже:
new string[20] = “pawno scripting”;
strdel(string,6, strlen(string));
printf(“%s”, string) //выведет в консоли сервера “pawno”
А, что если нам нужно извлечь часть символов из строки. В этом нам поможет функция strmid.
Допустим, у нас есть две переменные, одна уже содержит текст, а другая пустая.
Пишем эту функцию, в скобках пишем имя переменной, в которую будет извлекаться часть строки, дальше через запятую пишем имя переменной, из которой будет извлекаться данная часть строки. А дальше через запятую номер символа, с которого начинается извлекаемая часть и номер символа, с которого извлекаемая часть заканчивается.
new string[20] = “pawno scripting”;
new test[20];
strmid(test, string,0, 5);
printf(“%s”, test) //выведет в консоли сервера “pawno”
Теперь разберем функцию поиска символов в строке – strfind.
Функция пишется следующим образом.
1 new instring = strfind("Are you in here?", "you", true);
Если cтрока найдена, функция возвращает вхождение строки, если нет, она возвращает –1.
А следующая функция strcmp, известна вам еще при создании простых команд.
Она сравнивает строки.
1 if(strcmp("/mycommand", cmdtext, true, 10) == 0)
strcmp – сравнивает два значения, в данном примере «/mycommand» с командой, которой игрок вводит в чат (cmdtext). Значение true означает нечувствительность к регистру.
Если мы напишем false, игрок должен будет соблюдать регистр букв при написании команды.
Ну и последняя функция strcat связывает несколько строк в одну.
Вот пример для демонстрации работы функции, я думаю, тут также не возникнет вопросов.
new string[20] = “pawno ”;
new test[20] = “scripting”;
strcat(string, test);
printf(“%s”, string); //выведет в консоли сервера “pawno scripting”
|
|
|