diff --git a/photon/libc/include/string.h b/photon/libc/include/string.h index d0d58f3..c65a84d 100644 --- a/photon/libc/include/string.h +++ b/photon/libc/include/string.h @@ -12,6 +12,8 @@ extern int memcmp(const void *a, const void *b, size_t sz); extern void *memmove(void *dest, const void *src, size_t sz); extern void *memset(void *ptr, int value, size_t sz); +extern char *strcat(char *dest, const char *src); + extern size_t strlen(const char *str); extern int strcmp(const char *a, const char *b); extern int strncmp(const char *a, const char *b, size_t sz); @@ -19,6 +21,7 @@ extern int strncmp(const char *a, const char *b, size_t sz); extern char *strcpy(char *dest, const char *src); extern char *strncpy(char *dest, const char *src, size_t sz); +extern char *strchr(const char *str, int ch); extern char *strrchr(const char *s, int c); extern size_t strcspn(const char *str1, const char *str2); diff --git a/photon/libc/string/strcat.c b/photon/libc/string/strcat.c new file mode 100644 index 0000000..be6951c --- /dev/null +++ b/photon/libc/string/strcat.c @@ -0,0 +1,8 @@ +#include + +char *strcat(char *dest, const char *src) +{ + size_t len = strlen(dest); + strcpy(dest + len, src); + return dest; +} diff --git a/photon/libc/string/strchr.c b/photon/libc/string/strchr.c new file mode 100644 index 0000000..c2075f9 --- /dev/null +++ b/photon/libc/string/strchr.c @@ -0,0 +1,14 @@ +#include + +char *strchr(const char *str, int ch) +{ + char c = ch; + + for (size_t i = 0; str[i]; i++) { + if (str[i] == c) { + return (char *)&str[i]; + } + } + + return NULL; +}