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

来源:互联网 发布:淘宝服装店货源 编辑:程序博客网 时间:2024/06/05 05:44

参加过几个公司的笔试,笔试过程中遇到了这样的一道问题。如何不使用局部和全局变量来实现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 。

原创粉丝点击