以下我总结了c标准库中最常用的字符串函数的用法,希望对刚刚学习c基础的同学能有所帮助;对于初学者可以根据我写的例子自己动手敲敲代码,也可以在这个基础上进行改动尝试,在这个过程中可以发现问题,解决这些问题的过程你会学到更多的知识。
字符串长度
通过Linux下的man工具可以很方便的查看c库里面的函数接口的详细信息,例如man strlen,可以获取strlen这个函数的信息:
![7e378c9efbda75c9b424bda3fd03b962.png](https://img-blog.csdnimg.cn/img_convert/7e378c9efbda75c9b424bda3fd03b962.png)
- 函数原型:size_t strlen(const char *s);
- 功能:计算一个字符串的长度
- 需要包含头文件:#include
- 参数:需要传入一个字符串
- 返回值:返回传入字符串的字节个数,即字符串的长度
![a6698c57f541ba418e1a1cec7e0986c8.png](https://img-blog.csdnimg.cn/img_convert/a6698c57f541ba418e1a1cec7e0986c8.png)
字符串转换函数
![698764df01323a9d17cd133957a2b243.png](https://img-blog.csdnimg.cn/img_convert/698764df01323a9d17cd133957a2b243.png)
- 函数原型:函数原型如上图
- 功能:分别将字符串转换为int、long、long long类型的整数
- 需要包含头文件:#include
- 参数:要转换成整数的字符串
- 返回值:分别为对应类型的整数
![8ecb2969a51ed645591c473b52b5a816.png](https://img-blog.csdnimg.cn/img_convert/8ecb2969a51ed645591c473b52b5a816.png)
需要注意的是,当传入atoi的参数是非整数的字符串时,例如"hello",那么将返回0。
字符串复制
![a56ee6edc6191e44cf3c3f06d6fb44f3.png](https://img-blog.csdnimg.cn/img_convert/a56ee6edc6191e44cf3c3f06d6fb44f3.png)
- 函数原型:函数原型如上图
- 功能:将一个字符串复制到另一个字符串变量中
- 需要包含头文件:#include
- 参数:dest:目的字符串 src:源字符串 size:要cp的大小
- 返回值:成功则返回目的字符串的首地址
![11693bdcc99cc50313a5e96fed2a6a2e.png](https://img-blog.csdnimg.cn/img_convert/11693bdcc99cc50313a5e96fed2a6a2e.png)
从上面的例子可以看出,strncpy和strcpy的区别是strncpy可以指定要复制的字符串的大小。
字符串比较
![b525566f94183c41891a85fad208ad8f.png](https://img-blog.csdnimg.cn/img_convert/b525566f94183c41891a85fad208ad8f.png)
- 函数原型:函数原型如上图
- 功能:将一个字符串和另一个字符串的大小进行比较
- 需要包含头文件:#include
- 参数:s1、s2要进行比较的两个字符串的首地址,size:对两个字符串的前size个字节进行比较
- 返回值:如果两个字符串相等则返回0,如果不相等则返回不相等的两个字符的ascii码的差值
![ac9c9300e68539bb19a8c9a3691273cb.png](https://img-blog.csdnimg.cn/img_convert/ac9c9300e68539bb19a8c9a3691273cb.png)
字符串的大小比较是从两个字符串的第一个字符依次往后比较的,比较的是每个字节的ascii码值的大小;从上面的例子可以看出,strncmp可以只比较两个字符串的前size个字节。
以上是老韩关于Linux c基础指针的总结欢迎一起讨论,如有不足欢迎指点;对Linux c或者Linux驱动感兴趣的朋友可以收藏关注,我会持续更新的,谢谢支持!
![224516ab9d585e1880c3482a973b934b.png](https://img-blog.csdnimg.cn/img_convert/224516ab9d585e1880c3482a973b934b.png)