范文网 >资料大全 >综合资料 >strlen的几种不同实现方法

strlen的几种不同实现方法

孤己i 分享更新时间:
投诉

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的几种不同实现方法

将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档文档为doc格式