BarryServer : Git

All the code for all my projects
// BarryServer : Git / Nucleus / blob / e19098763d1a308a72840187f844860c05cbfc60 / lib / string.c

// Related

Nucleus

Barry File system type object 4f75471 (3 years, 3 months ago)
#include <stddef.h>

/* Compare two strings */
int
strcmp(char *s1, char *s2)
{
	for (; *s1 == *s2 && *s1 && *s2; s1++, s2++);
	return *(unsigned char *) s1 - *(unsigned char *) s2;
}

/* Compare two limited strings */
int
strncmp(char *s1, char *s2, size_t n)
{
	if (!n--) return 0;
	for (; *s1 == *s2 && *s1 && *s2 && n; s1++, s2++, n--);
	return *(unsigned char *) s1 - *(unsigned char *) s2;
}

/* Copy a string */
char *
strcpy(char *dest, const char *src)
{
	char *ret = dest;
	while (*src)
		*dest++ = *src++;
	*dest = '\0';
	return ret;
}

/* Copy a limited string */
char *
strncpy(char *dest, const char *src, size_t n)
{
	char *ret = dest;
	while (*src && n--)
		*dest++ = *src++;
	*dest = '\0';
	return ret;
}

/* Find length of string */
size_t
strlen(const char *str)
{
	if (!str)
		return 0;
	size_t i;
	for (i = 0; str[i]; i++);
	return i;
}