c语言编程实现strlen,C语言::模拟实现strlen函数(示例代码)

编写一个C语言程序模拟实现strlen函数.

算法

strlen函数功能是计算字符串中字符的个数.(除\0外)

而字符串本身就是一个字符数组,只不过末尾以\0结束.

因此,我们只需遍历除\0之外的所有字符即可.

有三种方法可以解决这个问题.

算法总结

方法一:设置一个整型计数器,遍历字符串.

方法二:通过不断函数自身的递归.

方法三:与方法一类似,设置一个char*变量标记字符串尾部,通过指针相减得到字符长度.

核心代码

//方法一:通过设置整型计数器,模拟实现strlen函数.

int my_strlen1(const char *str){

assert(str);

int count = 0;

while(*str++){

count++;

}

return count;

}

//方法二:通过递归,模拟实现strlen函数

int my_strlen2(const char *str){

assert(str);

if(*str){

return (1+my_strlen2(str+1));

}

return 0;

}

//方法三:通过char*变量,模拟实现strlen函数

int my_strlen3(const char *str){

const char *end = str;

assert(str);

while(*end++){

;

}

return (end-str-1);

}

完整测试代码

/*

*本代码版权归高小调博客所有

*作者:行不更名,坐不改姓的博主高小调

*日期:2015-7-31

*代码功能:三种方式模拟实现strlen函数

*搜集整理:高小调博客-(http://gaoxiaodiao.com)

*/

#include#include//方法一:通过设置整型计数器,模拟实现strlen函数.

int my_strlen1(const char *str){

assert(str);

int count = 0;

while(*str++){

count++;

}

return count;

}

//方法二:通过递归,模拟实现strlen函数

int my_strlen2(const char *str){

assert(str);

if(*str){

return (1+my_strlen2(str+1));

}

return 0;

}

//方法三:通过char*变量,模拟实现strlen函数

//(库函数中的strlen函数就是这么干的)

int my_strlen3(const char *str){

const char *end = str;

assert(str);

while(*end++){

;

}

return (end-str-1);

}

int main(){

char str[]="abcdef";

printf("str长度是:%d\n",my_strlen1(str));

printf("str长度是:%d\n",my_strlen2(str));

printf("str长度是:%d\n",my_strlen3(str));

return 0;

}

小调祝你一切安好.

本文由高小调博客原创!

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值