自己实现一个字符串的拷贝函数

#include<stdio.h>
#include<stdlib.h>
#include <string.h> char * mystrcpy(char * dest,char * src)
{
if(dest==NULL||src==NULL)
{
return NULL;
}
char * bak=dest;
while(*src!='\0')
{
*dest=*src;
dest++;
src++;
}
*dest='\0';//添加结束标识符
return bak;
} char * mystrncpy(char * dest,char * src,int count)
{
if(dest==NULL||src==NULL)
{
return NULL;
}
char * bak=dest;
while(*src!='\0'&&count>0)
{
*dest=*src;
dest++;
src++;
count--;
}
*dest='\0';//添加结束标识符
return bak;
} int main()
{
char dest[128]={'\0'};
char dest2[128]={'\0'};
char * src="helloworld";
mystrcpy(dest,src);
mystrncpy(dest2,src,3);
printf("%s\n",dest);
printf("%s\n",dest2);
printf("done\n");
return 0;
}

上述实现了一个全拷贝和部分拷贝函数。

输出结果:

helloworld
hel
done

最新文章

  1. 基于spring+quartz的分布式定时任务框架
  2. 51nod1305 Pairwise Sum and Divide
  3. CentOS下查看进程和删除进程
  4. MJExtension笔记(一)
  5. MSMQ创建消息队列出现“工作组安装计算机不支持该操作”
  6. LA 3708 Graveyard 墓地雕塑 NEERC 2006
  7. union 与struct的空间计算
  8. [置顶] 如何在Python IDLE中调试Python代码?
  9. Meta标签中的format-detection属性及含义让IPHONE的数字可以改变颜色
  10. Python之异步IO&amp;RabbitMQ&amp;Redis
  11. OpenGL-----深度测试,剪裁测试、Alpha测试和模板测试
  12. ZooKeeper集群的安装、配置、高可用测试
  13. Datatable get请求传参应用
  14. VS 通过局域网访问调试状态下的web应用程序
  15. C#流程控制语句--跳转语句(break,continue,goto,return,)
  16. Java高级
  17. Vue加载组件、动态加载组件的几种方式
  18. 百度前端技术学院task35源代码——听指令的小方块3
  19. 12月8日 周五 image_tag.
  20. Andfix热修复技术使用

热门文章

  1. CPU流水线与指令乱序执行
  2. KingbaseES集群部署工具安装
  3. 【Vue学习笔记】—— vuex的语法 { }
  4. 解决nuxt/koa架构初始项目运行报错问题
  5. winfrom,窗体抖动功能
  6. 使用 Skywalking Agent,这里使用sidecar 模式挂载 agent
  7. ELK 性能优化实践 ---总结篇
  8. Docker安装集群rabbitMQ
  9. 通过 Docker 部署 Redis 6.x 集群
  10. Git 便捷操作