模拟实现库函数strlen

来源:互联网 发布:网络短信平台免费 编辑:程序博客网 时间:2024/06/05 18:21

库函数 strlen
求字符串长度,当遇到‘\0’时,停止计算;关于这个函数的声明以及头文件,通过msdn了解一下:

这里写图片描述

首先分析一下实现过程:
首先给定字符串,必定占一定的内存空间,计算大小时,我们可以通过计数的方法来计算字符串的长度,每遇到一个字符,计数器加 1,直到遇到‘\0’停止计算。

这里写图片描述
下面实现自己的函数:

#include<stdio.h>#include<assert.h>int my_strlen(const char *str){    int count = 0;    assert(NULL != str);    while (*str)    {        count++;        str++;    }    return count;}int  main(){    char  arr[] = "hello world";    int ret = my_strlen(arr);    printf("%d\n", ret);    return 0;}

需要注意的地方:
1) const 的使用;const在这里保证了 str 的健壮性, 防止str 被修改的可能。
2) 函数返回类型;求字符串长度,必然返回的是大小,故而返回类型是整型。

int my_strlen(const char *str)

3)字符串长度的范围;求字符串长度时不计算‘\0’, 故而在遇到‘\0’时不进入循环,此时应注意 while 循环的条件

while (*str)

4) assert 断言的使用;防止传参的过程中发生错误,例如:传过来目标空间为空,这里会报错;在使用断言后,提高了代码的质量。

    assert(NULL != str);
原创粉丝点击