方法一:
使用计数器的方法进行统计,最容易想到的方法;
<code>#include <stdio.h></code>
<code>#include <stdlib.h></code>
<code> </code><code>#include <</code><code>assert</code><code>.h></code>
<code> </code>
<code>int</code> <code>my_strlen(</code><code>char</code> <code>*string)</code>
<code>{</code>
<code> </code><code>assert</code><code>(srring!=NULL);</code>
<code> </code><code>int</code> <code>count = 0;</code>
<code> </code><code>char</code> <code>*pstr = string;</code>
<code> </code><code>while</code> <code>(*pstr)</code>
<code> </code><code>{</code>
<code> </code><code>count++;</code>
<code> </code><code>pstr++;</code>
<code> </code><code>}</code>
<code> </code><code>return</code> <code>count;</code>
<code>}</code>
方法二:
通过递归的方式是实现(该方法会加大系统开销,效率相对较低);
<code>#include <assert.h></code>
<code> </code>
<code> </code><code>assert</code><code>(string != NULL);</code>
<code> </code><code>if</code> <code>(*pstr == </code><code>'\0'</code><code>)</code>
<code> </code><code>return</code> <code>0;</code>
<code> </code><code>else</code>
<code> </code><code>return</code> <code>1 + my_strlen(pstr + 1);</code>
方法三:
使用指针统计字符串的长度
<code> </code><code>char</code> <code>*pstart = string;</code>
<code> </code><code>char</code> <code>*pend = string;</code>
<code> </code><code>while</code> <code>(*pend)</code>
<code> </code><code>pend++;</code>
<code> </code><code>return</code> <code>pend - pstart;</code>
<code></code>
本文转自 七十七快 51CTO博客,原文链接:http://blog.51cto.com/10324228/1835861