(---牛客网中刷题---)写出完整版的strcpy函数
如果编写一个标准strcpy函数的总分值为10,下面给出几个不同得分的答案:    
2分
  
| 1 2 3 4 | voidstrcpy( char*strDest, char*strSrc ) {   while( (*strDest++ = * strSrc++) != ‘\0’ ); } | 
4分
 
  
| 1 2 3 4 5 | voidstrcpy( char*strDest, constchar*strSrc )  //将源字符串加const,表明其为输入参数,加2分 {   while( (*strDest++ = * strSrc++) != ‘\0’ ); } | 
7分
 
  
| 1 2 3 4 5 6 | voidstrcpy(char*strDest, constchar*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;
}
 
字符串拷贝函数strcpy的原型:
char *strcpy(char *strDest,const char *strSrc);
strcpy函数将strSrc拷贝至输出参数strDest中,同时函数的返回值又是strDest。这样做并非多此一举,可以获得如下灵活性:
char str[20];
int length = strlen( strcpy(str, “Hello World”) );
作用:为了生成链式表达式。
在面试中常会遇到写 strcpy,以及相关的问题,比如说返回值的作用等。
原文:http://www.cnblogs.com/carsonzhu/p/5277036.html