C語言中strlen函數功能及用法

  原型: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。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章