目录
标准库函数中的strcpy()源码
strcpy是一种C语言的标准库函数。strcpy是string copy 字符串复制的缩写。
char *strcpy(char *strDest, const char *strSrc)简单的理解:源字符串strSrc的内容复制给目标字符串strDest。
更详细的:strcpy把从strSrc地址开始且含有’\0’结束符的字符串复制到以strDest开始的地址空间,返回值的类型为char*。其源代码如下:
#include <assert.h>
char *strcpy(char *strDest, const char *strSrc){
assert((strDest!=NULL) && (strSrc !=NULL));
char *address = strDest;
while( (*strDest++ = *strSrc++) != '\0' ) ;
return address ;
}
代码分析:
源字符串参数用const修饰,防止源字符串被修改;
assert()是断言宏,作用是如果它的条件返回错误,则终止程序执行。也就是说strcpy传入的参数地址不允许是NULL。
address地址用于记录复制串的首地址。
while( (*strDest++ = *strSrc++) != '\0' ) ; 是字符串复制过程, 到 '\0' 终止。
strcpy()的用法
用法如下代码所示:
char a[100]="abcdefg";
char b[100]="x";
char c[100]="y";
strcpy(b,a);