原型:extern int strlen(char *s);
用法:#include <string.h>
功能:計算字符串s的(unsigned int型)長度
說明:返回s的長度,不包括結束符NULL。
舉例:
// strlen.c
#include <syslib.h>
#include <string.h>
main()
{
char *s="Golden Global View";
clrscr();
printf("%s has %d chars",s,strlen(s));
getchar();
return 0;
}
下面給大家提供幾種實現strlen函數的源代碼,供大家參考:
-------------------------------------------------1:start------------------------------------
#include <stdio.h>
#include <assert.h>
typedef unsigned int u_int;
u_int Mystrlen(const char *str)
{
u_int i;
assert(str != NULL);
for (i = 0; str != '/0'; i++);
return i;
}
------------------------------------------------1:end--------------------------------------
-------------------------------------------------2:start--------------------------------------
int strlen(const char *str)
{
assert(str != NULL);
int len = 0;
while((*str++) != '/0')
len++;
return len;
}
------------------------------------------------2:end ------------------------------------------
------------------------------------------------3:start------------------------------------------
int strlen(const char *str)
{
assert(str);
const char *p = str;
while(*p++!=NULL);
return p - str - 1;
}
-------------------------------------------------4:end-----------------------------------------
-------------------------------------------------5:start----------------------------------------
int strlen(const char *str)
{
assert(str);
const char *p = str;
while(*p++);
return p - str - 1;
}
-----------------------------------------------6:end----------------------------------------
簡單的總結一下:
以上各種實現的方式都是大同小異的,有的用的是變量,有的用的是指針。
其中,最後一個用的是遞歸的方式。其實,在實現庫函數的時候,是規定不可以
調用其他的庫函數的,這裏只是給大家一個方法,不用變量就可以實現strlen。