关于不用局部变量或者全局变量求字符串长度

本文探讨了一个利用递归而非传统变量的方法来计算字符串长度的独特解决方案,通过类比生活中的故事来启发思考,展示了解决问题的不同路径及事物间的内在联系。

参加过几个公司的笔试,笔试过程中遇到了这样的一道问题。如何不使用局部和全局变量来实现int strlen(char *p)求字符串的长度。当时想了半天,想到通过指针相减来求解,但是仍然要用到其他的变量来保存。后来在回去的路上,听到有个阿姨给孩子讲故事,说的事从前有座山,山里有座庙,庙里有个老和尚,老和尚给小和尚讲故事,讲的故事是,从前有座山,山里有座庙,庙里有个老和尚,老和尚给小和尚讲故事,讲的故事是……当时感觉很好笑,突然我想到问题的答案了,要是不用其他变量,为何不用递归呢,递归不就是自己调用自己吗,这样不就求的问题的答案了吗。

int strlen(char *p)
{
if(p==NULL)
return 0;
if(p=='\0')
 return 0;
else(p!='\0')
  return 1+strlen(++p);
}





这样 ,通过调用自身,就实现了求字符串的长度。通过这个例子,我明白了任何事物都是有联系的,任何问题也都是有解决方法的,只要我们抓住问题的实质,就能够answer 。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值