C和指针之memmove函数 memcpy函数 strcspn函数 strspn函数 strrstr函数实现

举报
chenyu 发表于 2021/07/27 00:32:35 2021/07/27
【摘要】 1  memmove函数的实现 #include <stdio.h>#include <string.h> void* my_memmove(void*dest, const void*src, size_t len) { char *pdest = (char *)dest; const char* psrc = (char ...

1  memmove函数的实现


  
  1. #include <stdio.h>
  2. #include <string.h>
  3. void* my_memmove(void*dest, const void*src, size_t len)
  4. {
  5. char *pdest = (char *)dest;
  6. const char* psrc = (char *)src;
  7. if ((psrc < pdest) && (pdest < psrc + len))
  8. {
  9. pdest = pdest + len - 1;
  10. psrc = psrc + len - 1;
  11. while (len--)
  12. {
  13. printf("*pstr is %c and *pdest is %c\n", *psrc, *pdest);
  14. *pdest-- = *psrc--;
  15. }
  16. }
  17. else
  18. {
  19. while (len--)
  20. {
  21. *pdest++ = *psrc++;
  22. }
  23. }
  24. return dest;
  25. }
  26. int main()
  27. {
  28. char s1[10] = "chenyu";
  29. printf("dest is %s\n", s1);
  30. printf("src is %s\n", s1 - 3);
  31. memmove(s1, s1 - 3, 6);
  32. printf("s1 is %s\n", s1 + 3);
  33. char s2[10] = "chenyu";
  34. my_memmove(s2, s2 - 3, 6);
  35. printf("s2 is %s\n", s2 + 3

文章来源: chenyu.blog.csdn.net,作者:chen.yu,版权归原作者所有,如需转载,请联系作者。

原文链接:chenyu.blog.csdn.net/article/details/84556251

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。