自己实现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;
}