码迷,mamicode.com
首页 > 其他好文 > 详细

字符串内置函数的实现

时间:2018-11-24 21:00:09      阅读:155      评论:0      收藏:0      [点我收藏+]

标签:assert   signed   turn   count   div   return   src   col   memcpy   

 1 char *MyStrcpy(char *des,const char *src)
 2 {
 3 assert(des != NULL && src != NULL);
 4 char *pstr = des;
 5 while((*pstr++ = *src++)!= \0);
 6 return des;
 7 }
 8 
 9 char *MyStrcat(char *des,const char *src)
10 {
11 assert(des != NULL && src!= NULL);
12 char *pdes = des;
13 while(*pdes != \0) ++pdes;
14 while((*pdes++ = *src++) != \0);
15 return des;
16 }
17 
18 void *MyMemcpy(void *des,const void *src,unsigned int count)
19 {
20 assert(des !=NULL && src != NULL && count>0);
21 char *pdes = (char *)des;
22 int i=0;
23 while(i<count && *(char *)src != \0)
24 {
25 *pdes++=*(char *)src;
26 src=(char *)src+1;
27 ++i;
28 }
29 *pdes = *(char*)src;
30 return des;
31 }
32 
33 void* MyMemmove(void *des,const void *src,unsigned int count)
34 {
35 assert(des != NULL && src != NULL && count >0);
36 char *pdes = (char *)des;
37 if(des < src || (char *)des >(char *)src + count)
38 {
39 int i = 0;
40 while(i<count && *(char *)src != \0)
41 {
42 *pdes++ = *(char *)src;
43 src = (char *)src+1;
44 ++i;
45 }
46 }
47 else
48 {
49 pdes = pdes + count;
50 src = (char *)src + count -1;
51 *pdes-- = \0;
52 int i= count -1;
53 while(i>=0)
54 {
55 *pdes--=*(char *)src;
56 i--;
57 src = (char *)src -1 ;
58 }
59 }
60 return des;
61 }

 

字符串内置函数的实现

标签:assert   signed   turn   count   div   return   src   col   memcpy   

原文地址:https://www.cnblogs.com/susidian/p/10013192.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!