xref: /nrf52832-nimble/rt-thread/components/libc/compilers/minilibc/string.h (revision 104654410c56c573564690304ae786df310c91fc)
1*10465441SEvalZero /*
2*10465441SEvalZero  * Copyright (c) 2006-2018, RT-Thread Development Team
3*10465441SEvalZero  *
4*10465441SEvalZero  * SPDX-License-Identifier: Apache-2.0
5*10465441SEvalZero  *
6*10465441SEvalZero  * Change Logs:
7*10465441SEvalZero  * Date           Author       Notes
8*10465441SEvalZero  * 2008-08-14     Bernard      the first version
9*10465441SEvalZero  */
10*10465441SEvalZero #ifndef __STRING_H__
11*10465441SEvalZero #define __STRING_H__
12*10465441SEvalZero 
13*10465441SEvalZero #include <rtthread.h>
14*10465441SEvalZero #include <sys/types.h>
15*10465441SEvalZero 
16*10465441SEvalZero /* replace for standard string library */
17*10465441SEvalZero #if !defined (RT_USING_NEWLIB) && defined (RT_USING_MINILIBC)
18*10465441SEvalZero 
19*10465441SEvalZero #define ZEROPAD 	(1 << 0)	/* pad with zero */
20*10465441SEvalZero #define SIGN 		(1 << 1)	/* unsigned/signed long */
21*10465441SEvalZero #define PLUS 		(1 << 2)	/* show plus */
22*10465441SEvalZero #define SPACE 		(1 << 3)	/* space if plus */
23*10465441SEvalZero #define LEFT 		(1 << 4)	/* left justified */
24*10465441SEvalZero #define SPECIAL 	(1 << 5)	/* 0x */
25*10465441SEvalZero #define LARGE		(1 << 6)	/* use 'ABCDEF' instead of 'abcdef' */
26*10465441SEvalZero 
27*10465441SEvalZero #define _U	0x01	/* upper */
28*10465441SEvalZero #define _L	0x02	/* lower */
29*10465441SEvalZero #define _D	0x04	/* digit */
30*10465441SEvalZero #define _C	0x08	/* cntrl */
31*10465441SEvalZero #define _P	0x10	/* punct */
32*10465441SEvalZero #define _S	0x20	/* white space (space/lf/tab) */
33*10465441SEvalZero #define _X	0x40	/* hex digit */
34*10465441SEvalZero #define _SP	0x80	/* hard space (0x20) */
35*10465441SEvalZero 
36*10465441SEvalZero void* memset(void *s, int c, size_t n);
37*10465441SEvalZero void* memcpy(void *dest, const void *src, size_t n);
38*10465441SEvalZero void* memmove(void *dest, const void *src, size_t n);
39*10465441SEvalZero int memcmp(const void *s1, const void *s2, size_t n);
40*10465441SEvalZero 
41*10465441SEvalZero int tolower(int c);
42*10465441SEvalZero int toupper(int c);
43*10465441SEvalZero 
44*10465441SEvalZero int strcmp (const char *s1, const char *s2);
45*10465441SEvalZero int strncmp(const char *cs,const char *ct, size_t count);
46*10465441SEvalZero int strcasecmp(const char *a, const char *b);
47*10465441SEvalZero int strncasecmp(const char *cs, const char *ct, size_t count);
48*10465441SEvalZero int sscanf(const char * buf, const char * fmt, ...);
49*10465441SEvalZero size_t strlen(const char *s);
50*10465441SEvalZero char *strstr(const char * s1,const char * s2);
51*10465441SEvalZero char *strcpy(char *dest, const char *src);
52*10465441SEvalZero char *strncpy(char *dest, const char *src, size_t n);
53*10465441SEvalZero size_t strlcpy(char *dst, const char *src, size_t siz);
54*10465441SEvalZero char *strncat(char *dest, const char *src, size_t count);
55*10465441SEvalZero char *strcat(char * dest, const char * src);
56*10465441SEvalZero char *strchr(const char *s1, int i);
57*10465441SEvalZero char *strrchr(const char *t, int c);
58*10465441SEvalZero char *strdup(const char *s);
59*10465441SEvalZero char *strtok(char *s, const char *delim);
60*10465441SEvalZero char*strtok_r(char*s, const char*delim, char**ptrptr);
61*10465441SEvalZero 
62*10465441SEvalZero size_t strcspn(const char *s, const char *reject);
63*10465441SEvalZero size_t strspn (const char *s, const char *accept);
64*10465441SEvalZero 
65*10465441SEvalZero long strtol(const char *str, char **endptr, int base);
66*10465441SEvalZero long long strtoll(const char *str, char **endptr, int base);
67*10465441SEvalZero #endif
68*10465441SEvalZero 
69*10465441SEvalZero #endif
70