方法一:
使用計數器的方法進行統計,最容易想到的方法;
<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