(---牛客网中刷题---)写出完整版的strcpy函数
如果编写一个标准strcpy函数的总分值为10,下面给出几个不同得分的答案:
2分
1
2
3
4
|
void strcpy ( char *strDest, char *strSrc ) { while ( (*strDest++ = * strSrc++) != ‘\0’ ); } |
4分
1
2
3
4
5
|
void strcpy ( char *strDest, const char *strSrc ) //将源字符串加const,表明其为输入参数,加2分 { while ( (*strDest++ = * strSrc++) != ‘\0’ ); } |
7分
1
2
3
4
5
6
|
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; }
字符串拷贝函数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