56. (待更新)自实现库函数 mystrlen, mystrcpy, mystrcat, mystrcmp, mystrstr,mystrtok

 

 

1 int myStrlen(const char *src)
2 {
3     int len = 0;
4     while(*src++)
5     {
6         len++;
7     }
8     return len;
9 }

 

 

1 char* myStrcpy(char* dest,const char* src)
2 {
3     char *d = dest;
4     while(*dest++ == *src++);
5     return d;
6 }

 

 

1 char* myStrcat(char* dest,const char* src)
2 {
3     char *d = dest;
4     while(*dest) dest++;
5     while(*dest++ = *src++);
6     return d;
7 }

 

 

 

 1 int myStrcmp(const char* s1,const char* s2)
 2 {
 3 #if 0
 4     for(;(*s1&&*s2)&&(*s1++ == *s2++););
 5     return *s1-*s2;
 6 #endif
 7     
 8 #if 0
 9     for(;(*s1&&*s2)&&(*s1++ == *s2++););
10     return *s1-*s2;
11     
12 #endif
13     
14 #if 0
15     for(; *s1 && *s2 ;s1++,s2++)
16     {
17         if(*s1 != *s2)
18             break;
19     }
20     return *s1 - *s2;
21 #endif
22     
23 #if 0
24     for(;;str1++,str2++)
25     {
26         if(*str1 != *str2)
27             return *str1-*str2;
28         if(*str1 == 0)//两个字符串同时到结尾\0
29             return 0;
30     }
31 #endif
32 }

 

 

 

 1 char * myStrstr(char *str, char *subStr)//调用库函数实现
 2 {
 3     if(*subStr == '\0')
 4         return str;
 5     while(str = strchr(str,*subStr))
 6     {
 7         if(strncmp(str,subStr,strlen(subStr)) == 0)
 8               return str;
 9         str++;
10     }
11     return NULL;
12 }
13 
14 
15 char * myStrstr(char *str, char *subStr)//纯自实现
16 {
17     if(*subStr == '\0')//如果subStr是空串,直接返回str
18         return str;
19     while(*str)
20     {
21         int i = 0;
22         for(;*(str+i) == *(subStr+i);i++)
23         {
24             if(*(subStr+i+1) == '\0')
25                 return str;
26         }
27         str++;
28     }
29     return NULL;
30 }

 

转载于:https://www.cnblogs.com/ZhuLuoJiGongYuan/p/9549337.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值