本篇文章给大家分享的是有关C语言中strlen函数如何使用,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

创新互联公司主要从事成都做网站、网站建设、网页设计、企业做网站、公司建网站等业务。立足成都服务南靖,十余年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18980820575
C语言中的字符串函数有如下这些
- 获取字符串长度 
- strlen 
- 长度不受限制的字符串函数 
- strcpy 
- strcat 
- strcmp 
- 长度受限制的字符串函数 
- strncpy 
- strncat 
- strncmp 
- 字符串查找 
- strstr 
- strtok 
- 错误信息报告 
- strerror 
接下来看看如何实现它们
获取字符串长度
strlen
我们看看文档是怎样说的,如下
strlen文档
size_t strlen ( const char * str );Get string length
获取字符串长度
Returns the length of the C string str.
返回C字符串str的长度
The length of a C string is determined by the terminating null-character: A C string is as long as the number of characters between the beginning of the string and the terminating null character (without including the terminating null character itself).
C字符串长度是由'\0'来确定的,也就是说从字符串的第一个开始只要遇到'\0'就结束长度计算(不包含'\0')
This should not be confused with the size of the array that holds the string. For example:
不用困惑你创建的数组的大小,比如这样
char mystr[100]="test string";defines an array of characters with a size of 100
chars, but the C string with which mystr has been initialized has a length of only 11 characters. Therefore, whilesizeof(mystr)evaluates to100,strlen(mystr)returns11.定义一个大小为100的数组
mystr,然后mystr就已经被初始化为一个长度为11的字符串了。所以呢,sizeof(mystr)会得出100, 而strlen(mystr)会返回11.
综上,可以知道
- 字符串已经 '\0' 作为结束标志,strlen函数返回的是在字符串中 '\0' 前面出现的字符个数(不包含 '\0' )。 
- 该函数只认'\0',参数指向的字符串必须要以 '\0' 结束。 
- 注意函数的返回值为size_t,是无符号的 
实现
strlen函数的实现有好几种。
比如
- 计数器的方法 
- 递归 
- 指针 - 指针 
接下来一一实现。
1. 计数器:使用一个变量来记录 - count
断言指针不为空是个好习惯~
int my_strlen(char* str) 
{
	int count = 0;
	assert(str != NULL);
	while (*str != '\0') // while (*str)
	{
		count++;
		str++;
	}
	return count;
}就一直找'\0',当*str不是'\0'时,就count++,str++,直到遇到'\0'停止,然后返回count就是长度了。
2. 递归
断言指针不为空是个好习惯~
int my_strlen(char* str)
{
    assert(str != NULL);
    char* p = str;
    while(*p == '\0')
    {
        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) 
{
    assert(str != NULL);
	char* p = str;
	while (*p != '\0') 
	{
		p++;
	}
	return p - str;
}把指针str的地址赋值给一个新的指针p,str作为指向起始地址的指针,不改变它,记录起始地址。
然后通过指针p进行查找'\0',判断当前字符是否为'\0',不是就进行p++,然后继续判断下一个字符,如此循环,直到指针p找到'\0',然后用 当前的指针p减去 起始指针str进行返回,就是长度了。
以上就是C语言中strlen函数如何使用,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注创新互联行业资讯频道。
分享名称:C语言中strlen函数如何使用
当前URL:http://www.scyingshan.cn/article/iggidh.html

 建站
建站
 咨询
咨询 售后
售后
 建站咨询
建站咨询 
 