C语言自己实现strlen函数

自己实现strlen函数的功能:
编程思路:
1.strlen是用来计算字符串长度的,遇到 '\0’结束
2.封装一个函数用来专门计算字符串的长度
3.把字符串的首地址传给函数
4.定义一个变量记录字符个数,while循环判断有没有到 ‘\0’,没有就自加
5.返回字符的个数

#include<stdio.h>
#include<assert.h>  
int my_strlen(const char * str)  //const 防止传进来的字符被更改
{
	assert(str != NULL);  //防止传进来的是空指针
	int count = 0;  //记录字符的个数
	while (*start++)  // * 的优先级更高,先解引用,后++
	{
		count++;
	}
	return count;  //返回字符的个数
}
int main()
{
	char a[] = "China is good";
	int lenth=my_strlen(a);
	printf("%d\n", lenth);
	system("pause");
	return 0;
}

还有一种办法用 指针-指针 = 个数 的方法,也可以实现同样的功能
代码如下:

#include<stdio.h>
int my_strlen(const char* str)
{
	char* start = str;  //用来记录字符串初始地址
	char* end = str;    //用来判断是否是'\0'
	while (*end++)      //如果是 '\0' 退出循环
	{
	}
	return end-start-1;  //此时end已经指向'\0'了,所以要减 1
}
int main()
{
	char arr[] = "hello world";
	int lenth = my_strlen(arr);
	printf("%d\n", lenth);
	system("pause");
	return 0;
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值