forked from Bananymous/banan-os
LibC: Implement and fix some string.h functions
This commit is contained in:
parent
393ac33e3c
commit
76049b2e13
|
@ -71,15 +71,38 @@ char* stpcpy(char* __restrict__ dest, const char* __restrict__ src)
|
||||||
return &dest[i];
|
return &dest[i];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
char* stpncpy(char* __restrict__ dest, const char* __restrict__ src, size_t n)
|
||||||
|
{
|
||||||
|
size_t i = 0;
|
||||||
|
for (; src[i] && n; i++, n--)
|
||||||
|
dest[i] = src[i];
|
||||||
|
for (; n; i++, n--)
|
||||||
|
dest[i] = '\0';
|
||||||
|
dest[i] = '\0';
|
||||||
|
return &dest[i];
|
||||||
|
}
|
||||||
|
|
||||||
char* strcpy(char* __restrict__ dest, const char* __restrict__ src)
|
char* strcpy(char* __restrict__ dest, const char* __restrict__ src)
|
||||||
{
|
{
|
||||||
stpcpy(dest, src);
|
stpcpy(dest, src);
|
||||||
return dest;
|
return dest;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
char* strncpy(char* __restrict__ dest, const char* __restrict__ src, size_t n)
|
||||||
|
{
|
||||||
|
stpncpy(dest, src, n);
|
||||||
|
return dest;
|
||||||
|
}
|
||||||
|
|
||||||
char* strcat(char* __restrict__ dest, const char* __restrict__ src)
|
char* strcat(char* __restrict__ dest, const char* __restrict__ src)
|
||||||
{
|
{
|
||||||
strcpy(dest + strlen(src), src);
|
strcpy(dest + strlen(dest), src);
|
||||||
|
return dest;
|
||||||
|
}
|
||||||
|
|
||||||
|
char* strncat(char* __restrict__ dest, const char* __restrict__ src, size_t n)
|
||||||
|
{
|
||||||
|
strncpy(dest + strlen(dest), src, n);
|
||||||
return dest;
|
return dest;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -321,16 +344,6 @@ char* strchrnul(const char* str, int c)
|
||||||
return (char*)str;
|
return (char*)str;
|
||||||
}
|
}
|
||||||
|
|
||||||
char* strncpy(char* __restrict__ dest, const char* __restrict__ src, size_t n)
|
|
||||||
{
|
|
||||||
size_t i;
|
|
||||||
for (i = 0; src[i] && i < n; i++)
|
|
||||||
dest[i] = src[i];
|
|
||||||
for (; i < n; i++)
|
|
||||||
dest[i] = '\0';
|
|
||||||
return dest;
|
|
||||||
}
|
|
||||||
|
|
||||||
char* strstr(const char* haystack, const char* needle)
|
char* strstr(const char* haystack, const char* needle)
|
||||||
{
|
{
|
||||||
for (size_t i = 0; haystack[i]; i++)
|
for (size_t i = 0; haystack[i]; i++)
|
||||||
|
|
Loading…
Reference in New Issue