700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 模拟实现: strstr strcpy strlen strcat strcmp memcpy memmove

模拟实现: strstr strcpy strlen strcat strcmp memcpy memmove

时间:2024-03-18 04:56:03

相关推荐

模拟实现: strstr strcpy strlen strcat strcmp memcpy memmove

模拟实现:

strstr

strcpy

strlen

strcat

strcmp

memcpy

memmove

================================

1 strstr 字符串中查找子字符串

char*my_strstr(constchar*dest,constchar*src){constchar*ret=dest;constchar*p=dest;constchar*q=src;assert(dest!=NULL&&src!=NULL);while(ret){q=src;while(*p==*q){p++;q++;}if(*q=='\0'){return(char*)ret;}else{p=++ret;}}returnNULL;}

===========================================

2 strcpy 字符串复制

char*my_strcpy(char*dest,constchar*src){char*ret=dest;assert(dest);assert(src);while(*dest++=*src++){;}returnret;}

==========================================

3 strlen 测字符串长度

intmy_strlen(constchar*s){constchar*p=s;while(*s){s++;}returns-p;}

==========================================

4 strcat 连接字符串

char*my_strcat(char*dest,constchar*src){char*ret=dest;assert(dest);assert(src);while(*dest){dest++;}while(*dest++=*src++){;}returnret;}

=========================================

5 strcmp 字符串复制

intmy_strcmp(constchar*s1,constchar*s2){assert(s1);assert(s2);while(*s1==*s2){if(*s1=='\0'){return0;}s1++;s2++;}return(*s1-*s2>0?1:-1);}

============================================

6 memcpy 内存复制

void*my_memcpy(void*buf1,constvoid*buf2,intcount){void*ret=buf1;char*dest=(char*)buf1;char*src=(char*)buf2;assert(buf1);assert(buf2);while(count--){*dest++=*src++;}returnret;}

=====================================================

7 memmove 内存移动

void*my_memmove(void*buf1,constvoid*buf2,intcount){void*ret=buf1;char*dest=(char*)buf1;char*src=(char*)buf2;assert(buf1);assert(buf2);if(dest>src&&dest<src+count)//重叠时从后向前移动{while(count--){*(dest+count)=*(src+count);}}else{while(count--){*dest++=*src++;}}returnret;}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。