strcpy&strncpy实现

本文详细介绍了两种基本字符串操作的实现方式:strcpy用于完整复制一个字符串到另一个位置,而strncpy则允许指定长度进行复制,并填充剩余字符为空。文中通过不同得分标准展示了从简单到完善的实现过程。

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;
}
用数组索引比用指针运行更容易理解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值