strlen的几种不同实现方法

时间:2020-11-22 10:44:37 笔试题目 我要投稿

strlen的几种不同实现方法

  int strlen(const char *str)

  {

  assert(str != NULL);

  int len = 0;

  while((*str++) != ‘\0′)

  len++;

  return len;

  }

  第二种方法:

  int strlen(const char *str)

  {

  assert(str);

  const char *p = str;

  while(*p++); /*use addresses to count the length of str*/

  return p – str – 1;

  }

  第三种方法:

  int strlen(const char* str)

  {

  if (str[0] == ‘\0′)

  return 0;

  else

  return strlen((char *)(&str[0]+1))+1; /*iteration*/

  }

  ANSI C标准中的说法摘录如下: (1)当一个数组标识符出现在表达式中,这个标识符的类型就从“某种类型T的数组”转换成“指向类型T的指针”,而且它的值就等于数组第一个元素的`地址。但是当数组标识符被用作sizeof和取址(&)操作的操作数时,sizeof返回的是整个数组的大小,而取址操作返回的是指向数组的指针(而不是指向一个值为数组头元素地址的指针的指针)。(2)下列表达式不能产生lvalue: 数组名,函数,枚举常量,赋值表达式,强制类型转换,函数调用。

【strlen的几种不同实现方法】相关文章:

sun认证考试经验:多线程的几种实现方法详解11-08

CAD图上自动实现不同的标注比例方法08-10

常用的几种传球方法09-07

几种哑铃的练习方法06-30

实现硬盘raid的方法07-12

堆的javascript实现方法11-22

不同口腔异味的不同去除方法11-01

考研数学阶段不同复习的方法不同01-22

几种经典奶茶的调制方法10-06