实现strlen()函数

一)strlen()函数的源代码

size_t __cdecl strlen (const char * str)
{      
        const char *eos = str;

        while( *eos++ ) ;

        return( eos - str - 1 );
}
二)传说常见的一个笔试题:不使用中间变量求const字符串长度,即实现求字符串长度库函数strlen函数。

函数接口声明如下:

int strlen (const char *p);
①实现方法一:

/* 不用中间变量,用递归实现,很容易看懂 */ 
int strlen(const char *str)   
{     
	if ('\0' == *str)  
		return 0;           
	else        
		return strlen(str+1) + 1;         
}
②实现方法二:

/* 不用中间变量,也是用递归实现,写得更简洁而已 */
int strlen(const char *str)   
{                 
	return *str?(strlen(++str) + 1) : 0; 
} 


你可能感兴趣的:(c,String,null,存储,语言,编译器)