c字符串小总结2

int Strrchr(char *s,char ch)//从字符串后面查找字符
{
int len=strlen(s)-1;
while(s[len])
if (s[len--]==ch)
return ++len;
return -1;

}

int strstr1(const char* src, const char* sub)//字符串匹配
{
assert(src!=NULL && sub!=NULL);
int len1=strlen(src);
int len2=strlen(sub);
int i=0,j=1;
while(i<=len1&&j<=len2)
{
if (src[i] == sub[j-1])
{
++i;
++j;
}
else
{
i=i-j+2;
j=1;
}
}
if (j>len2)
{
return i-len2;
}
else
return -1;
}

typedef unsigned char BYTE1;
void *memcpy(void * dest, const void *src, unsigned int size)//拷贝内存
{
assert(dest!=NULL && src!=NULL);
assert(dest+size<=src || dest>=src+size);
BYTE1 *p = (BYTE1*)dest;
const BYTE1 *q=(BYTE1*)src;
while(size--)
{
*p++ = *q++;
}
return dest;
}

void* memmove(void* dst, const void* src, unsigned int count)

{
176    void * ret = dst;
177    if (dst <= src || (char *)dst >= ((char *)src + count))
178    {
179       while (count--)
180       {
181         *(char *)dst = *(char *)src;
182             dst = (char *)dst + 1;
183             src = (char *)src + 1;
184         }
185    }
186    else
187    {
188       dst = (char *)dst + count - 1;
189       src = (char *)src + count - 1;
190       while (count--)
191       {
192         *(char *)dst = *(char *)src;
193         dst = (char *)dst - 1;
194         src = (char *)src - 1;
195       }
196    }
197    return(ret);
198   

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值