mirror of
https://github.com/tailix/libkernaux.git
synced 2025-03-03 16:04:29 -05:00
Main: libc/include/string.h: Add func "strncat"
This commit is contained in:
parent
26376584ac
commit
78b9c0b9cd
2 changed files with 16 additions and 0 deletions
|
@ -16,6 +16,7 @@ char *strcat(char *dest, const char *src);
|
||||||
int strcmp(const char *s1, const char *s2);
|
int strcmp(const char *s1, const char *s2);
|
||||||
char *strcpy(char *dest, const char *src);
|
char *strcpy(char *dest, const char *src);
|
||||||
size_t strlen(const char *s);
|
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);
|
int strncmp(const char *s1, const char *s2, size_t n);
|
||||||
char *strncpy(char *dest, const char *src, size_t n);
|
char *strncpy(char *dest, const char *src, size_t n);
|
||||||
size_t strnlen(const char *s, size_t maxlen);
|
size_t strnlen(const char *s, size_t maxlen);
|
||||||
|
|
|
@ -78,6 +78,21 @@ size_t strlen(const char *s)
|
||||||
return ss - 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)
|
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;
|
for (; *s1 && n; ++s1, ++s2, --n) if (*s1 != *s2) return *s1 < *s2 ? -1 : 1;
|
||||||
|
|
Loading…
Add table
Reference in a new issue