strlen功能:
计算字符串长度
原理:从第一个字符串开始数,直到数到’\0’结束
创造一个与strlen()相同效力的函数
提示:字符串传递形式参数,字符串首元素地址进行传递:
int* my_strlen(char* str)
{
int count = 0;
while (*str != '\0')
{
count++;
str++;
}
return count;
}
int main()
{
int len = my_strlen("abcdef");
printf("%d", len);
return 0;
}
分析:
提示:首元素地址传参后指针该如何指向下一个字符?
解引用str,因为str是4byte,故str++,让下一个字符形参传递
运行结果
基于指针运算的进一步改进:
常识:指针+数字=指针
则指针-指针=数字
int main()
{
int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
int n = &arr[9] - &arr[0];
printf("%d",n);
return 0;
}
改进方案
int* my_strlen(char* str)
{
char* start = str;
while (*str != '\0')
{
str++;
}
return str-start;
}
int main()
{
int len = my_strlen("abcdef");
printf("%d", len);
return 0;
}
感谢您阅读到此,通读后可以对函数和指针的知识进一步理解