Main: libc/include/string.h: Add func "strncat"

This commit is contained in:
Alex Kotov 2022-06-10 09:06:29 +03:00
parent 26376584ac
commit 78b9c0b9cd
Signed by: kotovalexarian
GPG Key ID: 553C0EBBEB5D5F08
2 changed files with 16 additions and 0 deletions

View File

@ -16,6 +16,7 @@ char *strcat(char *dest, const char *src);
int strcmp(const char *s1, const char *s2);
char *strcpy(char *dest, const char *src);
size_t strlen(const char *s);
char *strncat(char *dest, const char *src, size_t n);
int strncmp(const char *s1, const char *s2, size_t n);
char *strncpy(char *dest, const char *src, size_t n);
size_t strnlen(const char *s, size_t maxlen);

View File

@ -78,6 +78,21 @@ size_t strlen(const char *s)
return ss - s;
}
char *strncat(char *dest, const char *src, size_t n)
{
char *const dest_start = dest;
if (n) {
while (*dest++);
while ((*dest++ = *src++)) {
if (--n == 0) {
*dest = '\0';
break;
}
}
}
return dest_start;
}
int strncmp(const char *s1, const char *s2, size_t n)
{
for (; *s1 && n; ++s1, ++s2, --n) if (*s1 != *s2) return *s1 < *s2 ? -1 : 1;