Untitled
unknown
c_cpp
4 years ago
2.2 kB
5
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...