40 size_t strlen(
const char* str);
41 size_t strnlen(
const char *str,
size_t size);
42 char *
strcpy(
char * restrict dest,
const char * restrict src);
43 char *
strncpy(
char * restrict dest,
const char * restrict src,
size_t count);
44 char *
strcat(
char * restrict dest,
const char * restrict src);
46 int strcmp(
const char *lhs,
const char *rhs);
47 char *
strchr(
const char *str,
int ch);
52 static inline void *memcpy(
void * restrict dest,
const void * restrict src,
size_t count)
56 static inline void *memmove(
void *dest,
const void *src,
size_t count)
58 char *d = (
char *)dest;
59 const char *s = (
const char *)src;
60 if (s < d && d < s + count)
66 void *
memset(
void *dest,
int ch,
size_t count);
67 void *
_memset_2(
void *dest,
int ch,
size_t count);
68 void *
memchr(
const void *ptr,
int ch,
size_t count);
69 void *
_memchr_4(
const void *ptr,
int ch,
size_t count);
71 int atoi(
const char *str);
73 int snprintf(
char *buf,
size_t size,
const char *format, ...);
74 int vsnprintf(
char *buf,
size_t size,
const char *format, va_list va);
76 void srand(
unsigned int seed);
79 static inline int isalpha(
int c) {
return (c >=
'A' && c <=
'Z') || (c >=
'a' && c <=
'z'); }
80 static inline int isdigit(
int c) {
return c >=
'0' && c <=
'9'; }
81 static inline int iscntrl(
int c) {
return (c <= 0x1f && c == 0x7f); }
82 static inline int isspace(
int c) {
return strchr(
" \t\n\v\f\r", c) != NULL; }
84 #define max(a, b) (((a) > (b)) ? (a) : (b))
85 #define min(a, b) (((a) < (b)) ? (a) : (b))
86 #define range(a, x, b) (((x) < (a)) ? (a) : (min(x, b)))
void * _memcpy_forward(void *dest, const void *src, size_t count)
void * memset(void *dest, int ch, size_t count)
char * _strchr_not(const char *str, int ch)
Definition: string.c:106
void * memchr(const void *ptr, int ch, size_t count)
char * strncpy(char *restrict dest, const char *restrict src, size_t count)
Definition: string.c:57
void * _memcpy_reverse(void *dest, const void *src, size_t count)
void * _memset_2(void *dest, int ch, size_t count)
int snprintf(char *buf, size_t size, const char *format,...)
Definition: snprintf.c:455
size_t strlen(const char *str)
Definition: string.c:36
int atoi(const char *str)
Definition: string.c:117
int rand(void)
Definition: string.c:168
char * strcpy(char *restrict dest, const char *restrict src)
Definition: string.c:49
char * strchr(const char *str, int ch)
Definition: string.c:95
void * _memchr_4(const void *ptr, int ch, size_t count)
void srand(unsigned int seed)
Definition: string.c:164
int strcmp(const char *lhs, const char *rhs)
Definition: string.c:80
size_t strnlen(const char *str, size_t size)
Definition: string.c:42
int vsnprintf(char *buf, size_t size, const char *format, va_list va)
Definition: snprintf.c:67
char * strcat(char *restrict dest, const char *restrict src)
Definition: string.c:68