5 int strcmp(const char *s1
, const char *s2
)
7 while ((*s1
== *s2
) && *s1
!= '\0') {
15 int strncmp(const char *s1
, const char *s2
, int n
)
17 while ((--n
) && (*s1
== *s2
) && *s1
!= '\0') {
26 char *strcpy(char *dest
, const char *src
)
30 while ((*dest
++ = *src
++) != '\0')
36 char *strcat(char *dest
, const char *src
)
42 while ((*dest
++ = *src
++) != '\0')
48 size_t strlen(const char *s
)
52 for (sc
= s
; *sc
; ++sc
)
58 char *strchr (const char *s
, int c
)
69 char *strrchr (char *s
, int c
)
71 char *end
= s
+ strlen(s
) - 1;
73 while (*end
!= c
&& end
>= s
)
81 char *strdup(const char *str)
83 char *s = malloc(strlen(str) + 1);
91 void *memset(void *s
, int c
, size_t count
)
100 void *memset_word(void *s
, unsigned short word
, size_t count
)
102 unsigned short *xs
= (unsigned short *)s
;
109 void *memcpy(void *dest
, const void *src
, size_t count
)
120 void *memmove(void *dest
, const void *src
, size_t count
)
142 int memcmp(const void *cs
, const void *ct
, size_t count
)
144 const unsigned char *su1
, *su2
;
147 for (su1
= cs
, su2
= ct
; 0 < count
; ++su1
, ++su2
, count
--)
148 if ((res
= *su1
- *su2
) != 0)