字符串处理的一些题

来源:互联网 发布:朱炫热血知乎 编辑:程序博客网 时间:2024/05/17 23:55

1 写一个函数removesubstr(char *s, char *t),功能是从字符串s中找子串t,并将t从s中删除。

代码:

int removesubstr(char *s, char *t){char *dst, *sp, *tp;int find = 0;dst = s;while (*s){sp = s;tp = t;while (*tp && (*sp == *tp)){sp++;tp++;}if (!*tp){find = 1;break;}s++;}if (find == 1){while ((*s++ = *sp++) != '\0');}s = dst;return find;}


2 memcpy与memmove的实现

代码:

void * my_memcpy(void* dest, void* source, size_t count){char *ret = (char *)dest;char *dest_t = ret;char *source_t = (char *)source;while (count--){   *dest_t++ = *source_t++;}   return ret;}      


void * my_memmove(void *dst,const void *src,int count){char *ret;char *dst_t;char *src_t;ret = (char *)dst;if ((unsigned char*)dst <= (unsigned char*)src || (unsigned char *)dst >= ((unsigned char *)src + count)) {dst_t = (char *)dst;src_t = (char *)src;while (count--) {*dst_t++ = *src_t++;}}else{ dst_t = (char *)dst + count - 1;src_t = (char *)src + count - 1;while (count--) {*dst_t-- = *src_t--;}}return ret;}




原创粉丝点击