1、字符串操作函数.
以str开头的函数 都是字符串操作函数 都是遇到'\0'结束操作.
1、测量字符串的长度 strlen.
2、字符串拷贝函数strcpy.
会导致拷贝越界
3、字符串追加函数strcat.
4、字符串比较strcmp.
(1)#include <string.h>
(2)int strcmp(const char *s1, const char *s2);
(3) int strncmp(const char *s1, const char *s2, size_t n);
返回值:
>0 s1字符串>s2字符串
<0 s1字符串<s2字符串
==0 s1字符串==s2字符串
5、字符查找函数strchr.
6、字符串查找strstr.
(1) #include <string.h>
(2) char *strstr(const char *haystack, const char *needle);
(3) 返回值:找到返回找到的地址 失败 返回NULL
7、字符串 转 数值.
8、字符串 切割 strtok.
第一次切割:str必须指向 待切割的字符串的首元素地址 delim指向分割符":"
后续切割:str传NULL delim指向分割符":"
返回值:
成功:返回值子串的首元素地址
失败:返回NULL 案例 1: 第一种切割法
第二种
案例
1、 char msg_src[]="+CMGR:REC UNREAD,+8613466630259,98/10/01,18:22:11+00,ABCdefGHI"
参考以下的函数名字以及参数,完成相应的要求
int msg_ deal(char *msg_ src, char *msg_ _done[],char *str)
参数1:待切割字符串的首地址
参数2:指针数组:存放切割完字符串的首地址
参数3:切割字符
返回值:切割的字符串总数量
2、将字符串 转成 数值.
3、格式化字符串.
组包:按照需要的格式 组成字符串
解包:解析特定格式的数据
1、 sprintf 用于组包.
将零散的数据 按照固定的格式 组成字符串.
将数字转化为字符串
2、sscanf用于解包.
%d提取数值'0'~'9'
%s提取字符串 遇到'\0' 空格 回车
4、 sscanf 高级用法.
1、跳过数据%*d %*s
sscanf("1234 5678", "%*d %s", buf);//buf="5678
2、读指定宽度的数据:%[width]s%[width]d.
3、%[a-z] 表示匹配a到z中任意字符(尽可能多的匹配).
4、%[aBc] 匹配a、B、c中一员,贪婪性.
5、%[^aFc] 匹配非aFc的任意字符,贪婪性.
综合 案例
5、const.
1、 const修饰普通变量 为只读变量.
2、const修饰*.
3、const 修饰 指针变量.
4、const 既修饰*也修饰指针变量.