您的位置:首页 > 编程语言 > C语言/C++

C语言经典题-库函数strlen与strcpy工作方式

2016-10-22 10:19 232 查看
库函数strcpy的工作方式,如果编写一个标准strcpy函数的总分值为10,下面给出几个不同得分的答案:

2分

void strcpy( char *strDest, char *strSrc )
{
  while( (*strDest++ = * strSrc++) != ‘\0’ );


  4分

void strcpy( char *strDest, const char *strSrc ) 
//将源字符串加const,表明其为输入参数,加2分
{
  while( (*strDest++ = * strSrc++) != ‘\0’ );


  7分

void strcpy(char *strDest, const char *strSrc) 
{
 //对源地址和目的地址加非0断言,加3分
 assert( (strDest != NULL) && (strSrc != NULL) );
 while( (*strDest++ = * strSrc++) != ‘\0’ );


  10分

//为了实现链式操作,将目的地址返回,加3分!

char * strcpy( char *strDest, const char *strSrc ) 

{

 assert( (strDest != NULL) && (strSrc != NULL) );

 char *address = strDest; 

 while( (*strDest++ = * strSrc++) != ‘\0’ ); 

 return address;



  从2分到10分的几个答案我们可以清楚的看到,小小的strcpy竟然暗藏着这么多玄机,真不是盖的!需要多么扎实的基本功才能写一个完美的strcpy啊!

与strcpy类似,下面是strlen的完整版

int strlen( const char *str
) //输入参数const

{

 assert( strt != NULL ); //断言字符串地址非0

 int len;

 while( (*str++) != '\0' ) 

 { 

  len++; 
 } 
 return len;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c语言 函数 strcpy strlen