自定义strlen函数(递归/非递归)

文章展示了如何在C语言中编写strlen函数的两种实现方式:一种是使用循环(非递归),另一种是利用递归。非递归版本通过计数器逐个检查字符直到遇到空字符;递归版本则通过递归调用自身处理字符串的下一个字符,直到遇到空字符结束。
摘要由CSDN通过智能技术生成

要求:自己设计一个strlen函数

  • 不使用函数递归


#include<stdio.h>
#include<string.h>

int my_strlen(char* psk) {
    int count = 0;
    while(*psk != '\0') {
        count++;
        psk++;
    }
    return count;
}

int main() {
    char sk[]="csdn";
    printf("%d", my_strlen(sk));
    return 0;
}

  • 使用函数递归


#include<stdio.h>

int  Strlen(char* str) {
    if (*str != '\0')
    {
        return 1 + Strlen(str + 1);//字符串名是首元素的地址
    }
    else
        return 0;
}

main()
{
    char c[100];
    scanf("%s", c);
    printf("%d\n", Strlen(c));
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值