Untitled
unknown
c_cpp
5 years ago
2.2 kB
8
Indexable
// это concat из жабы тока которому задаешь длину результата + 1
// чтоб можно было не полностью скреплять
// возвращает длину получившегося говна (dst - destination, src - source)
int ft_strlcat(char *dst, const char *src, unsigned int size)
{
int res;
res = 0;
// тут создаю рез, дальше входим в цикл который проходит через dst
while (*dst)
{
// указатель как я говорил ранее показывает на адрес первого
// элемента в массиве который является буквой а значит не нулём
// значит условие выполняется!!!
res++;
// если буква под указателем на самом деле буква а не 0 (конец)
// то прибавляем к резу...
dst++;
// ...и прыгаем на след букву
}
// под конец этого цикла *dst будет указывать на конец строчки, то есть
// NULL (он 0 поэтому не заходит в цикл тот)
size = size - res - 1;
// тут меняем size пушо такое условие (нужно оставить 1 байт места
// для этого NULL-а поэтому отнимаем 1)
while (size--)
{
// так как dst остался на конце слова мы его приравниваем к *src
// который по дефолту указывает на первую букву src
*dst = *src;
// ну потом офк делаем шаг вперёд и там и там (и не забываем прибавить к резу)
dst++;
src++;
res++;
}
// оканчиваем dst NULL-ом чтобы был тру string-ом
*dst = '\0';
// возвращаем рез
return (res);
}Editor is loading...