模拟实现strcmp、strstr、memcpy、memmove
来源:互联网 发布:手机录音软件排行 编辑:程序博客网 时间:2024/06/04 20:10
#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>#include <assert.h>#include <windows.h> #include <stdlib.h>#模拟实现memmove函数void *my_memmove(void *dest,const void *src,size_t count) { void *ret = dest; assert(dest); assert(src); if((src<dest)&&((char*)dest<(char*)src+count)) { while(count--) { *((char*)dest+count)=*((char*)src+count); } } else { while(count--) { *(char*)dest=*(char*)src; dest=(char*)dest+1; src=(char*)src+1; } } return ret; } int main() { int i=0; int arr[]={1,2,3,4,5,6,7,8,9,0}; int sz=sizeof(arr)/sizeof(arr[0]); my_memmove(arr+3,arr,4*sizeof(int)); for(i=0;i<sz;i++) { printf("%d ",arr[i]); } return 0; } #模拟实现memcpy函数void* my_memcpy(void* dest, const void* src,size_t count) { void *ret = dest; assert(dest); assert(src); while(count) { *(char *)dest = *(char *)src; dest = (char *)dest+1; src = (char *)src+1; count--; } return ret; } int main() { char arr[] = {"hello"}; char str[] = {"bit"}; int sz = sizeof(arr)/sizeof(arr[0]); int i=0; char *ret=my_memcpy(arr,str,7); printf("%s\n",ret); return 0; } #模拟实现strstr函数 char *my_strstr(const char *str, char *string){ int i=0; assert(str&&string); while('\0'!=str) { while(1) { if(string[i]!=str[i]) break; if(string[i]=='\0') return str; i++; } string++; } return NULL;}int main(){ char string[] = "bcde"; char str[] = "abcdef"; char *p=my_strstr(str,string); int result=p-str+1; if(p!=NULL) printf("%s found at position %d\n\n", string,result); else printf( "%s not found\n", string); return 0;}#模拟实现strcmp函数int my_strcmp(const char *str1, const char *str2) { assert(str1); assert(str2); while (*(str1) == *(str2)) { if (*str1 == '\0') return 0; str1++; str2++; } return *str1 - *str2;} int main() { char *p1 = "ab"; char *p2 = "abcd"; printf("%d\n", my_strcmp(p1, p2)); return 0; }
阅读全文
0 0
- 模拟实现strcmp、strstr、memcpy、memmove
- 模拟实现strstr,strcpy,strlen,strcat,strcmp,memcpy,memmove
- 模拟实现: strstr strcpy strlen strcat strcmp memcpy memmove
- strcpy,strcmp,strstr,strcat,memcpy,memmove的模拟实现
- 模拟实现strlen,strcpy,strcat,strcmp,strstr,memcpy,memmove
- 模拟实现strcpy ,strstr,strcat,strcmp,memcpy,memmove
- 模拟实现C库函数:strchr、strcmp、strstr、memcpy和memmove
- 模拟实现strcpy、strcat、strstr、strchr、strcmp、memcpy、memmove
- 模拟实现strstr,memcpy,memmove
- 模拟实现strcmp,strncmp,strstr,strcat,strncat,strcpy,strncpy,strlen ,memcpy,memmove等函数
- 字符串处理函数的模拟实现(strlen、strstr、strcat、strcmp、strcpy、memmove、memcpy)
- 模拟实现C库函数strcpy,strcat,strstr,strchr,strcmp,memcpy,memmove
- 字符串函数模拟实现(strcpy,strcat,strstr,strchr,strcmp,memcpy,memmove)
- 模拟实现C语言库函数strcpy,strcat,strstr,strchr,strcmp,memcpy,memmove
- 模拟库函数(strcpy,strcat,strchr,strstr,strcmp,memcpy,memmove)
- 字符串库函数strcpy strcmp strstr memcpy memmove等的实现
- strcpy(),memcpy(),memmove(),memset(),strcmp(),strstr()的实现
- 模拟实现字符串操作函数(strcpy,strstr,strcat,strcmp,strlen)与内存操作函数(memcpy,memmove)
- 大型分布式网站术语分析
- Weblogic 12c集群部署
- .NET/android/java/iOS AES通用加密解密
- JavaWeb学习总结(三)——Tomcat服务器学习和使用(二)
- sql、select查询除了某一列的数据
- 模拟实现strcmp、strstr、memcpy、memmove
- html年月日下拉联动菜单 年月日三下拉框联动
- java代码写备份数据库方法
- git push 失败,提示 unpack error/unpack failed 解决方法
- ssm出现Invalid bound statement (not found):
- windows环境中mysql忘记root密码的解决办法 (不用mysqld-nt.exe)+找不到password
- 【网易笔试题】战斗点
- Java集合基础总结
- Linux笔记之shell脚本1:初识shell脚本