#ifndef ULIBC_STRING_H
#define ULIBC_STRING_H
#include <stddef.h>
#include <stdint.h>
void* memcpy(void* dst, const void* src, size_t n);
void* memset(void* s, int c, size_t n);
void* memmove(void* dst, const void* src, size_t n);
int memcmp(const void* a, const void* b, size_t n);
size_t strlen(const char* s);
char* strcpy(char* dst, const char* src);
char* strncpy(char* dst, const char* src, size_t n);
int strcmp(const char* a, const char* b);
int strncmp(const char* a, const char* b, size_t n);
char* strchr(const char* s, int c);
char* strrchr(const char* s, int c);
char* strcat(char* dst, const char* src);
char* strncat(char* dst, const char* src, size_t n);
char* strdup(const char* s);
int strcasecmp(const char* a, const char* b);
int strncasecmp(const char* a, const char* b, size_t n);
char* strstr(const char* haystack, const char* needle);
void* memchr(const void* s, int c, size_t n);
char* strtok(char* str, const char* delim);
char* strtok_r(char* str, const char* delim, char** saveptr);
char* strerror(int errnum);
size_t strnlen(const char* s, size_t maxlen);
size_t strspn(const char* s, const char* accept);
size_t strcspn(const char* s, const char* reject);
char* strpbrk(const char* s, const char* accept);
char* strsignal(int sig);
#endif