// SPDX-License-Identifier: GPL-2.0-or-later /* * Copyright (C) 2026 Richard QIn */ #ifndef _STRING_H #define _STRING_H #include "ulib/types.h" #include "ulib/errno.h" #ifndef _SIZE_T #define _SIZE_T typedef unsigned long long size_t; #endif #ifdef __cplusplus extern "C" { #endif /* Memory Manipulation*/ void *memcpy(void *dest, const void *src, size_t n); void *memmove(void *dest, const void *src, size_t n); void *memset(void *dest, int c, size_t n); int memcmp(const void *s1, const void *s2, size_t n); void *memchr(const void *s, int c, size_t n); /* String Manipulation */ size_t strlen(const char *s); char *strcpy(char *dest, const char *src); char *strncpy(char *dest, const char *src, size_t n); char *strcat(char *dest, const char *src); char *strncat(char *dest, const char *src, size_t n); int strcmp(const char *s1, const char *s2); int strncmp(const char *s1, const char *s2, size_t n); char *strchr(const char *s, int c); char *strrchr(const char *s, int c); char *strstr(const char *haystack, const char *needle); char *strdup(const char *s); size_t strlcpy(char *dest, const char *src, size_t size); size_t strlcat(char *dest, const char *src, size_t size); 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 *strtok(char *str, const char *delim); char *strerror(int errnum); #ifdef __cplusplus } #endif #endif /* _STRING_H */