ESP8266字符串API
int os_sprintf( char *buffer, const char * format, [ argument ] … )
把格式化的数据写入某个字符串缓冲区
buffer: char型指针,指向将要写入的字符串的缓冲区。
format: 格式化字符串。
[argument]...: 可选参数,可以是任何类型的数据。【若是字符串,结束字符‘\0’不写入】
返回值X: 以format为格式argument为内容组成的结果被写入buffer 的字节数,
结束字符‘\0’不计入内
注:详细说明请在百度百科中搜索”sprintf”,查看该词条。
void * os_memset( void *dest, int val, unsigned int nbyte )
将参数1(dest)所指向位置的nbyte个字节全部填充为val指定的ASCII值/数据
dest: 目标地址
val: 填充字符/数据
nbyte: 填充字节数
返回值: 指向dest的void*指针
void * os_memcpy( void *dest, const void *src, unsigned int nbyte )
从参数2(src)所指的位置起,拷贝nbyte个字节到参数1(dest)所指位置处
dest: 目标地址
src: 源地址
nbyte: 拷贝的字节数
返回值: 指向dest的void*指针
void * os_memmove( void *dest, const void *src, unsigned int nbyte )
从参数2(src)所指的位置起,拷贝nbyte个字节到参数1(dest)所指位置处
如果目标区域和源区域有重叠的话,memmove能够保证源字符串在被覆盖之前将重叠区域的字节拷贝到目标区域中。但复制后src内容会被更改。
当目标区域与源区域没有重叠则和memcpy函数功能相同。
dest: 目标地址
src: 源地址
nbyte: 拷贝的字节数
返回值: 指向dest的void*指针
int os_memcmp( const void *str1, const void *str2, unsigned int nbyte )
比较 参数1(str1)指向位置和参数2(str1)指向位置的前nbyte个字节(按字节比较)
dest: 目标地址
src: 源地址
nbyte: 比较的字节数
返回值<0: buf1<buf2
返回值=0: buf1==buf2
返回值>0: buf1>buf2
例: char *s1="abc"; char *s2="acd"; int result = memcmp(s1,s2,3);
比较s1和s2的前3个字节,第一个字节相等,第二个字节比较中s1<s2(第三字节无需比较)。
所以result = -1
int os_strlen(const char *s)
计算给定字符串s的长度,不包括'\0'在内.
s1: 字符串
返回值: 字符串长度
char * os_strstr( const char *str1, const char *str2 )
判断字符串str2是否是str1的子串
str1: 字符串1(母串)
str2: 字符串2(子串)
返回值=NULL: 字符串2不是字符串1的子串
返回值!=NULL: 字符串2是字符串1的子串,返回字符串2在字符串1中首次出现的地址
char * strcpy( char* dest, const char *src )
把从参数2(src)所指位置起的字符串(含有'\0'结束符)复制到以参数1(dest)开始的地址空间
dest: 目标地址
src: 源地址
返回值: 指向dest的char*指针
char * os_strncpy( char *dest, char *src, unsigned int nbyte )
把从参数2(src)所指位置起的字符串的前nbyte个字节复制到以参数1(dest)开始的地址空间
注意:
如果src的前n个字符不含NULL字符,则结果不会以NULL字符结束。
即:如果n<src的长度,只是将src的前n个字符复制到dest的前n个字符,不自动添加 '\0',也就是结果dest不包括'\0',需要再手动添加一个'\0'。
如果src的长度小于n个字节,则以'\0'填充dest直到复制完n个字节。
src和dest所指内存区域不可以重叠,dest必须有足够的空间来容纳src的字符长度+'\0'。
dest: 目标字符串
src: 源字符串
nbyte: 复制的字节数
返回值: 指向dest的char*指针
int os_strcmp( const char *s1, const char *s2 )
两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇'\0'为止
s1: 字符串1
s2: 字符串2
返回值<0: s1<s2
返回值=0: s1==s2
返回值>0: s1>s2
int os_strncmp( const char *s1, const char *s2, unsigned int nbyte )
比较字符串s1和s2的前nbyte个字符。
注意: 要比较的字符包括字符串结束标志'\0'
并且一旦遇到'\0'就结束比较,无论nbyte是多少,不再继续比较后边的字符。
s1: 字符串1
s2: 字符串2
nbyte: 比较的字节数
返回值<0: s1<s2(前nbyte个字节)
返回值=0: s1==s2(前nbyte个字节)
返回值>0: s1>s2(前nbyte个字节)