今天小编给大家分享一下C语言的strlen函数怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获、下面我们一起来了解一下吧。
C语言中的字符串函数有如下这些
- <李>
获取字符串长度
李>- <李>
strlen
李>长度不受限制的字符串函数
李>- <李>
拷贝字符串
李> <李>strcat
李> <李>比较字符串
李>长度受限制的字符串函数
李>- <李>
strncpy
李> <李>strncat
李> <李>strncmp
李>字符串查找
李>- <李>
strstr
李> <李>strtok
李>错误信息报告
李>- <李>
strerror
李>接下来看看如何实现它们
获取字符串长度
strlen
我们看看文档是怎样说的,如下
strlen文档
size_t strlen (, const char *, str );获取字符串长度
获取字符串长度
返回的长度C string str 。
返回C字符串str的长度
C字符串的长度是由终止null字符:A C字符串,是只要数量的字符在字符串的开始和终止null字符(不包括终止null字符本身)。
C字符串长度是由& # 39;\ 0 & # 39;来确定的,也就是说从字符串的第一个开始只要遇到& # 39;\ 0 & # 39;就结束长度计算(不包含& # 39;\ 0 & # 39;)
本不应被混淆的字符串数组的大小。例如:
不用困惑你创建的数组的大小,比如这样
char mystr [100]=皌est string";定义字符数组大小为100,<代码>字符代码>,但C字符串which mystr ,已初始化的长度> <李>
字符串已经& # 39;\ 0 & # 39;作为结束标志,strlen函数返回的是在字符串中& # 39;\ 0 & # 39;前面出现的字符个数(不包含& # 39;\ 0 & # 39;)。
李> <李>该函数只认& # 39;\ 0 & # 39;参数指向的字符串必须要以& # 39;\ 0 & # 39;李结束。
> <李>注意函数的返回值为size_t,是无符号的
李>实现
strlen函数的实现有好几种。
比如
<李>
计数器的方法
李> <李>递归
李> <李>指针——指针
李>接下来一一实现。
<编辑> 1。计数器:使用一个变量来记录——数编辑>断言指针不为空是个好习惯~
引用>int my_strlen (char *, str), { int count =, 0; 断言(str !=, NULL); while (* str !=, & # 39; \ 0 & # 39;),//, while (* str) { 数+ +; str + +; } return 计算; }就一直找& # 39;\ 0 & # 39;当* str不是& # 39;\ 0 & # 39;时,就数+ +,str + +,直到遇到& # 39;\ 0 & # 39;停止,然后返回数就是长度了。
<编辑> 2。递归编辑>断言指针不为空是个好习惯~
引用>int my_strlen (char *, str) { ,,,断言(str !=, NULL); ,,,char *, p =, str; ,,,,(==* p & # 39; \ 0 & # 39;) ,,,{ ,,,,,,,return 0; ,,,} ,,,return 1, +, my_strlen (p +, 1); }比如传入的str地址为1000
那么1 + my_strlen (p + 1)中,p + 1,指针偏移后就是1001年以此类推。
1 + 1 + my_strlen (p + 1)
1 + 1 + 1 + my_strlen (p + 1)
1 + 1 + 1 + 1 + my_strlen (p + 1)
…
1 + 1 + 1 + 1 +…+ 0
最终就可以得出长度。
<编辑> 3。指针——指针编辑>断言指针不为空是个好习惯~
引用>int my_strlen (char *, str), { ,,,断言(str !=, NULL); char *, p =, str; while (* p !=, & # 39; \ 0 & # 39;), { p + +; } return p 安康,str; }把指针str的地址赋值给一个新的指针p, str作为指向起始地址的指针,不改变它,记录起始地址。
然后通过指针p进行查找& # 39;\ 0 & # 39;判断当前字符是否为& # 39;\ 0 & # 39;不是就进行p + +,然后继续判断下一个字符,如此循环,直到指针p找到& # 39;\ 0 & # 39;,然后用,<强>当前的指针p 强>,减去,<强>起始指针str >强,进行返回,就是长度了。
C语言的strlen函数怎么使用