C 模拟strlen函数

1.题目

实现strlen函数

2.程序代码

#define _CRT_SECURE_NO_WARNINGS 1

#include <stdio.h>
#include <Windows.h>
#include <assert.h>

int my_strlen1(const char *str)//创建临时变量
{
    assert(str);

    int count = 0;

    while (*str)
    {
        count++;
        str++;
    }

    return count;
}

int my_strlen2(const char *str)//递归函数
{
    assert(str);

    if (*str == '\0')
    {
        return 0;
    }

    return 1 + my_strlen2(str + 1);
}

int my_strlen3(const char *str)//指针相减法:指针-指针得到的就是中间元素的个数
                           //只有两个指针指向同一块内存时才可以使用
{
    assert(str);

    char *start = str;

    while (*start)
    {
        start++;
    }

    return start - str;
}

int main()
{
    char str[] = "abvdefg";

    printf("%d\n", my_strlen1(str));
    printf("%d\n", my_strlen2(str));
    printf("%d\n", my_strlen3(str));

    system("pause");
    return 0;
}

3.执行结果

这里写图片描述

猜你喜欢

转载自blog.csdn.net/k_a_irving/article/details/80149436