功能:把src所指由NULL结束的字符串复制到dest所指的数组中。
说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。
src字符串尾的字符串结束标识符'/0'也会被复制过去,复制完成后s1中的内容会被覆盖掉
view plain copy to clipboard print ? strlen函数的意思是测试字符串的字符长度,不含字符串结束标志的。 sizeof是个运算符,它的结果是字符串在内存中的所占字节大小,它要把/0算进去的。 strcpy函数原型1 char * strcpy(char *a, const char *b) //注意要声明const { assert((strDest!=NULL) && (strSrc !=NULL)); //断言两个为空则不用复制,直接中止 while((*(a++)=*(b++))!=0); return a; } strcpy函数原型2 char *strcpy(char *strDest, const char *strSrc);//strDest为目标,strSrc为源 { assert((strDest!=NULL) && (strSrc !=NULL)); //如果两个为空则不用复制,直接中止 char *address = strDest; //用address指向strDest开始地址 while( (*strDest++ = * strSrc++) != ‘/0’ ) //复制,直到源串结束; return address ; //返回strDest开始地址 } strlen函数的意思是测试字符串的字符长度,不含字符串结束标志的。sizeof是个运算符,它的结果是字符串在内存中的所占字节大小,它要把/0算进去的。strcpy函数原型1char * strcpy(char *a, const char *b) //注意要声明const{ assert((strDest!=NULL) && (strSrc !=NULL)); //断言两个为空则不用复制,直接中止 while((*(a++)=*(b++))!=0); return a;}strcpy函数原型2char *strcpy(char *strDest, const char *strSrc);//strDest为目标,strSrc为源{ assert((strDest!=NULL) && (strSrc !=NULL)); //如果两个为空则不用复制,直接中止 char *address = strDest; //用address指向strDest开始地址 while( (*strDest++ = * strSrc++) != ‘/0’ ) //复制,直到源串结束; return address ; //返回strDest开始地址 } view plain copy to clipboard print ? 完美的strlen版本: int strlen(const char *str) { assert(str != NULL); //判断字符串非NULL int len; while((*str++)!= '/0') { len++; } return len; }