6 int strcmp(const char *s1
, const char *s2
)
8 while ((*s1
== *s2
) && *s1
!= '\0') {
16 int strncmp(const char *s1
, const char *s2
, int n
)
18 while ((--n
) && (*s1
== *s2
) && *s1
!= '\0') {
27 char *strcpy(char *dest
, const char *src
)
31 while ((*dest
++ = *src
++) != '\0')
37 char *strcat(char *dest
, const char *src
)
43 while ((*dest
++ = *src
++) != '\0')
49 size_t strlen(const char *s
)
53 for (sc
= s
; *sc
; ++sc
)
59 char *strchr (const char *s
, int c
)
70 char *strrchr (char *s
, int c
)
72 char *end
= s
+ strlen(s
) - 1;
74 while (*end
!= c
&& end
>= s
)
81 char *strdup(const char *str
)
83 char *s
= malloc(strlen(str
) + 1);
90 void *memset(void *s
, int c
, size_t count
)
99 void *memset_word(void *s
, unsigned short word
, size_t count
)
101 unsigned short *xs
= (unsigned short *)s
;
108 void *memcpy(void *dest
, const void *src
, size_t count
)
119 void *memmove(void *dest
, const void *src
, size_t count
)
141 int memcmp(const void *cs
, const void *ct
, size_t count
)
143 const unsigned char *su1
, *su2
;
146 for (su1
= cs
, su2
= ct
; 0 < count
; ++su1
, ++su2
, count
--)
147 if ((res
= *su1
- *su2
) != 0)