字符串操作函数

时间久了忘了,自己写一遍

(*¯︶¯*)

一、strlen 计算字符串长度

1 size_t mystrlen(const char *s){
2     assert(s!=NULL);
3     size_t len=0;
4     while(*s!=''){
5         s++;
6         len++;        
7     }    
8     return len;
9 }

二、strcpy strncpy 字符拷贝

 1 char * mystrcpy(char *dest,const char *src){
 2     assert(dest!=NULL&&src!=NULL);
 3     char * pdest=dest;
 4     while(*src!=''){
 5         *dest=*src;
 6         dest++;
 7         src++ 8     }  
 9     *dest='';
10     return pdest;  
11 }
 1 char *mystrncpy(char *dest, const char *src,size_t n){
 2     assert(dest!= NULL && src != NULL);
 3     char *pdest = dest;  
 4     while(n--&&*src!=''){
 5         *dest=*src;
 6         dest++;
 7         src++;
 8     }
 9     *dest='';
10     return pdest;      
11 }

三、strcat strncat字符追加

 1 char* mystrcat(char *dest,const char *src){
 2     assert(dest != NULL && src !=NULL);
 3     char *pdest=dest;
 4     while(*dest != ''){
 5         dest++;
 6     }
 7     while(*src != ''){
 8         *dest = *src;
 9         dest++;
10         src++;
11     }
12     *dest='';
13     return pdest;
14 }
 1 char *mystrncat(char *dest,const char *src,size_t n){
 2     assert(dest != NULL&& src != NULL);
 3     char *pdest=dest;
 4     while(*dest != ''){
 5         dest++;
 6     }
 7     while(n-- && *src != ''){
 8         *dest = *src;
 9         dest++;
10         src++;
11     }
12     *dest = '';
13     return pdest;
14 }

四、strcmp strncmp字符比较

1 int mystrcmp(const char *s1,const char *s2){
2     assert(s1 != NULL && s2 != NULL);
3     while(*s1 != '' && *s2 != '' && *s1 == *s2){
4         s1++;
5         s2++;
6     }  
7     return *s1 - *s2;
8 }
1 int mystrncmp(const char *s1,const char *s2,size_t n){
2     assert(s1 != NULL && s2 != NULL);
3     while(n-- && *s1 != '' && *s2 != '' && *s1 == *s2){
4         s1++;
5         s2++;
6     }
7     return *s1 - *s2;
8 }

 五、memcpy 内存拷贝

 1 void * mymemcpy(void *dest,const void * src,size_t n){
 2     assert(dest != NULL && src != NULL);
 3     char *pdest=(char *)dest;
 4     char *psrc=(char *)src;
 5     while(n>0){
 6         *pdest=*psrc;
 7         pdest++;
 8         psrc++;
 9         n--;
10     }
11     return dest;
12 }
原文地址:https://www.cnblogs.com/jiangyu0331/p/11650543.html