PDA

Просмотр полной версии : [Function] SplitString



L0ndl3m
15.12.2013, 19:53
Описание:

Разделяет строку на подстроки

Параметры:

source[] - обрабатываемый одномерный массив ( строка )
dest[][] - записываемый двумерный массив ( в него будут записаны подстроки )
delimiter - разделитель между каждым словом
maxlength - максимальная длина подстроки


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

Данная функция не возвращает определённого значения.

Плюсы реализации:

Скорость выполнения кода по сравнению со стандартным split превышает в несколько раз.

Минусы реализации:

N/A

Код:


SplitString(const source[], dest[][], const delimiter = '|', const maxlength = sizeof(dest[])) {
new
pos = -1,
count,
offset;

while (source[++pos] != EOS) {
if (source[pos] == delimiter) {
strmid(dest[count++], source, offset, pos, maxlength);
offset = pos + 1;
}
}

if(source[pos] == EOS) {
strmid(dest[count], source, offset, pos, maxlength);
}
}


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


main()
{
new
dest[5][6],
fish_string[] = "Lorem ipsum dolor sit amet";

SplitString(fish_string, dest, ' ');

for(new i = 0; i < sizeof(dest); i++)
print(dest[i]);
}


Автор: L0ndl3m (http://pro-pawn.ru/member.php?2057)

vovandolg
20.01.2016, 00:23
А как без sscanf проверить у такой функции что 2 подстроки не выходят за пределы?