strlen的几种不同实现方法

2023-06-30   


int strlen(const char *str)
  
   assert(str != NULL);
   int len = 0;
   while((*str++) != ‘′)
   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] == ‘′)
   return 0;
   else
   return strlen((char *)(&str[0]+1))+1; /*iteration*/
  
   ANSI C标准中的说法摘录如下: (1)当一个数组标识符出现在表达式中,这个标识符的类型就从“某种类型T的数组”转换成“指向类型T的指针”,而且它的值就等于数组第一个元素的地址。但是当数组标识符被用作sizeof和取址(&)操作的操作数时,sizeof返回的是整个数组的大小,而取址操作返回的是指向数组的指针(而不是指向一个值为数组头元素地址的指针的指针)。(2)下列表达式不能产生lvalue: 数组名,函数,枚举常量,赋值表达式,强制类型转换,函数调用。


相关内容:

  1. C#笔试题集合
  2. 职业生涯规划的几种方法
  3. ASP.NET 中页面传参的几种方法
  4. 职场中的几种禁忌心态
  5. 说说你所熟悉或听说过的j2ee中的几种常用模式?及对设计模式的一些看法
  6. 排序都有哪几种方法?请列举。用JAVA实现一个快速排序