Автор: Daniel_Cortez
Эта простенькая программа предназначена для быстрого определения длины строки.
Уже давно не секрет, что указывать строки типа
Code: Select all
new string[256];
довольно-таки глупо, поскольку
1. Расходуется лишнее место в стеке, что грозит его переполнением.
2. Тратится лишнее время на инициализацию всех символов строки значением '\0'.
При этом подсчитывать длину строки вручную просто нудно.
Именно для таких целей и была создана программа StringLength: просто копируете строку из pawno, вставляете её в программу - и вуоля!
- Примеры использования
- Пример 1. Дана строка "пример строки":
Просто берём длину строки, полученную из программы, ОБЯЗАТЕЛЬНО прибавляем 1 (символ конца строки - '\0') и пишем код:Code: Select all
new string[14] = "пример строки";
Пример 2. Определить имя игрока и сделать строку в формате "Имя игрока: <имя>":
Сначала объявляем строку для сохранения имени игрока:Code: Select all
new name[MAX_PLAYER_NAME+1];
1 - определяем длину отрывка "Имя игрока: " (12)
2 - складываем полученную длину с максимальной длиной имени игрока (MAX_PLAYER_NAME)
3 - прибавляем к результату 1 (завершающий символ '\0')
Получаем строковую переменную:Code: Select all
new string[12+MAX_PLAYER_NAME+1];
4 - берём готовую строковую переменную, добавляем ещё одну для хренения имени игрока (name), затем используем GetPlayerName() для получения имени игрока и format() для соединения строк:Code: Select all
new string[12+MAX_PLAYER_NAME+1];
new name[MAX_PLAYER_NAME+1];
GetPlayerName(playerid, name, sizeof(name));
format(string, sizeof(string), "Имя игрока: %s", name);
Примечание: длина "%s" не учтена, т.к. на место этого отрывка строки будет подставлено имя игрока, длину которого уже учли.
Кроме того, программа также умеет распознавать и правильно определять длину строки с такими символами, как '\n', '\t', '\0' и т.п.
Скачать: RGhost