C语言字符串处理函数(c基础快速入门)

1、字符串操作函数.

以str开头的函数 都是字符串操作函数 都是遇到'\0'结束操作.

1、测量字符串的长度 strlen.

de8515f6afe849d5ad64b350d94afa4c.jpg

2、字符串拷贝函数strcpy. 

040603e0e21444b1a91df6e60e87c69b.jpg

fa411f2fde8043cb9d0e3a0a1de42339.jpg 会导致拷贝越界

3、字符串追加函数strcat.

7c5f0fedbedf48c7b0e850c6938df78c.jpg4、字符串比较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字符串

c2becc97389146d291bea153ac01a59e.jpg

 5、字符查找函数strchr.

acfaa956408f48ffbee4c065ded60408.jpg

4406f58925f443a696bb72468882ba00.jpg 

6、字符串查找strstr.

 (1) #include <string.h>

(2) char *strstr(const char *haystack, const char *needle);

(3) 返回值:找到返回找到的地址 失败 返回NULL

2a53da29739940f294756982575258f7.jpg

7、字符串 转 数值.

bf185dd7b73740e3837cd4723e0598e1.jpg

8fe3d7c184d84b0684eecb062a5389d3.jpg8、字符串  切割  strtok.                                                     96b36bc991f249c187315bb5729b2b65.jpg 第一次切割:str必须指向 待切割的字符串的首元素地址 delim指向分割符":"

后续切割:str传NULL delim指向分割符":"

返回值:

​ 成功:返回值子串的首元素地址

​ 失败:返回NULL                                                        案例 1: 第一种切割法

99f81c65d7804774ae5ed86c18ef31a7.jpg

 第二种

ad18d0d2783a4a56b4a3373325ae6746.jpg

 案例

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:切割字符

返回值:切割的字符串总数量

3297f80783c84255906f6b97377e0334.jpg

 2、将字符串  转成  数值.

41fe2d920e714808acdd5197ea514137.jpg

3、格式化字符串.

组包:按照需要的格式 组成字符串

解包:解析特定格式的数据

 1、  sprintf 用于组包.

将零散的数据  按照固定的格式  组成字符串.

0bdf58c1707d47c68e8e69c7a07023b1.jpg

f64eaf0c1cb3438099dfaecf18238af5.jpg 

将数字转化为字符串

f0fb28df8b364c3f877f475a0fffacae.jpg 

 2、sscanf用于解包.

%d提取数值'0'~'9'

4b05fc476b51435f99293671267eacaa.jpg

%s提取字符串  遇到'\0' 空格  回车

a89115a850a0484db5556515ac70725a.jpg

 4、 sscanf 高级用法.

1、跳过数据%*d %*s

sscanf("1234 5678", "%*d %s", buf);//buf="5678

2、读指定宽度的数据:%[width]s%[width]d.

b1eba55274d6471b843e9fa1471c93a3.jpg

0732ffd7d8ec43a8b9392b0d17cecaab.jpg 

3、%[a-z] 表示匹配a到z中任意字符(尽可能多的匹配).

f3feb5bcc8234dec8b3f1482d167ccd9.jpg

4、%[aBc] 匹配a、B、c中一员,贪婪性.

fbeeed5cff334807b6eb25199a376430.jpg

5、%[^aFc] 匹配非aFc的任意字符,贪婪性.

a43638e22385438aa9cf9eda523720c3.jpg

0fac7a4ab4f6448cb91de9c73fcf02e7.jpg 

 综合  案例

87056de9bdd84cbebac3f8b1281de109.jpg

5、const.

1、 const修饰普通变量 为只读变量.

0dfcdc00eac9404da4d1a5f29d5420d4.jpg

2、const修饰*.

4baa251901d441b382640d3d145ec406.jpg

3361a0d224f249ad9b09827ee5f840c3.jpg 

3、const 修饰 指针变量.

21919c49dfd44dd598a11f91e2fab0fc.jpg 

ebf0cb78c99249ac818ef0dcf092b326.jpg 

4、const 既修饰*也修饰指针变量.

8b1b315ee9ff42e185e1e8498b72485e.jpg 

 

 

 

 

 

 

                          

 

                                                                                         

    

 

 

                                                                           

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

软件范子豪.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值