fix dependency check logic cause config always disabled
[lunaix-os.git] / lunaix-os / usr / libc / src / string.c
1 #include <string.h>
2 #include <sys/types.h>
3
4 size_t
5 strlen(const char* str)
6 {
7     size_t len = 0;
8     while (str[len])
9         len++;
10     return len;
11 }
12
13 const char*
14 strchr(const char* str, int character)
15 {
16     char c = (char)character;
17     while ((*str)) {
18         if (*str == c) {
19             return str;
20         }
21         str++;
22     }
23     return c == '\0' ? str : NULL;
24 }
25
26 size_t
27 strnlen(const char* str, size_t max_len)
28 {
29     size_t len = 0;
30     while (str[len] && len <= max_len)
31         len++;
32     return len;
33 }
34
35 char*
36 strncpy(char* dest, const char* src, size_t n)
37 {
38     char c;
39     unsigned int i = 0;
40     while ((c = src[i]) && i <= n)
41         dest[i++] = c;
42     while (i <= n)
43         dest[i++] = 0;
44     return dest;
45 }
46
47 char*
48 strcpy(char* dest, const char* src)
49 {
50     char c;
51     unsigned int i = 0;
52     while ((c = src[i])) {
53         dest[i] = c;
54         i++;
55     }
56     dest[i] = '\0';
57     return dest;
58 }
59
60 int
61 strcmp(const char* a, const char* b)
62 {
63     while (*a && *a == *b) {
64         a++;
65         b++;
66     }
67     return *a - *b;
68 }