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