Strpack

Материал из Wiki.Pawno-Info.Ru
Перейти к навигации Перейти к поиску

Описание:

Упаковывает указанную строку.


Параметры:

(dest[], source[], maxlength = sizeof(dest))
destмассив для записи упакованной строки
sourceстрока, которую нужно упаковать
maxlengthразмер массива для записи упакованной строки


Возвращаемые значения:

длина упакованной строки


Wiki note.png

Примечание

Это имя функции начинается со строчной буквы.
В случае, когда строка, переданная в source, уже упакована - функция просто скопирует строку.


Wiki note important.png

Важное
примечание

Функция сохраняет строку в упакованном виде. Некоторые функции, такие как printf и format, не умеют правильно работать с упакованными строками, поэтому может понадобиться распаковать строку с помощью strunpack, прежде чем использовать её в одной из упомянутых функций.


Пример использования:

stock PrintPackStatus(const name[], const string[]) printf("Строка %s %sупакована", name, ispacked(string) ? "" : "не ");
main()
{
// Строка str1 упакована, а str2 объявлена в неупакованном виде.
	new str1[] = !"abcd";
	new str2[] = "efgh";
// Выведем информацию о том, упакованы ли строки
	PrintPackStatus("str1", str1); // "Строка str1 упакована"
	PrintPackStatus("str2", str2); // "Строка str2 не упакована"
// Теперь распакуем str1 и, наоборот, упакуем str2
	strpack(str1, str1);
	strunpack(str2, str2);
// Выведем информацию об упакованности строк ещё раз
	PrintPackStatus("str1", str1); // "Строка str1 не упакована"
	PrintPackStatus("str2", str2); // "Строка str2 упакована"
}


Связанные функции

Следующие функции также могут быть полезны, поскольку они так или иначе связаны с рассматриваемой функцией.