diff --git a/.gitignore b/.gitignore index 366a2f5..0fa4b0f 100644 --- a/.gitignore +++ b/.gitignore @@ -51,3 +51,4 @@ Module.symvers Mkfile.old dkms.conf /tests/a +/*.org diff --git a/strcpy.c b/strcpy.c new file mode 100644 index 0000000..3f43ee2 --- /dev/null +++ b/strcpy.c @@ -0,0 +1,28 @@ +#include "main.h" +#include + +/** + * _strcpy - strcpy with an n + * @dest: the buffer we copying to + * @src: the idot we ctrl+c-ed + * Return: dest + */ +char *_strcpy(char *dest, char *src) +{ + int s_idx, i, strlen; + char *new_me; + + new_me = malloc(_strlen(dest) + _strlen(src) + 1); + strlen = _strlen(src); + + s_idx = -1; + while (*(dest + ++s_idx)) + *(new_me + s_idx) = *(dest + s_idx); + + for (i = 0; i < strlen; i++) + *(new_me + s_idx++) = *(src + i); + *(new_me + _strlen(new_me)) = '\0'; + + + return (new_me); +} diff --git a/tests/strcpy.c b/tests/strcpy.c new file mode 100644 index 0000000..d2edc4b --- /dev/null +++ b/tests/strcpy.c @@ -0,0 +1,17 @@ +#include "../main.h" +#include +#include +/** + * main - why does this not work! I know! + * Return: 0...unless? + */ +int main(void) +{ + char *str, *str2; + + str = "hello"; + str2 = " world!\n"; + str = _strcpy(str, str2); + printf("%s", str); + return (0); +}