strcpy实现
2分实现
void strcpy( char *dest, char *src )
{
while( (*dest++ = * src++) != '\0' );
}
4分实现
void strcpy( char *dest, const char *src )
//接口能给调用者传递更多的信息
{
while( (*dest++ = *src++) != '\0' );
}
7分实现
void strcpy(char *dest, const char *src)
{
// 加上对传入空指针情况的考虑
assert( (dest != NULL) && (src != NULL) );
while( (*dest++ = * src++) != '\0' );
}
10分实现
//返回地址可实现链式操作
char * strcpy( char *dest, const char *src )
{
assert( (dest != NULL) && (src != NULL) );
char *address = dest;
while( (*dest++ = *src++) != '\0' );
return address;
}
strncpy实现
char* strncpy(char* dest, const char* src, size_t n) {
size_t i = 0;
while (i < n && src[i] != '\0')
dest[i] = src[i++];
while (i < n)
dest[i++] = '\0';
return dest;
}
用数组索引比用指针运行更容易理解