实现1.strcpy 2.实现strcat 3.实现strstr 4.实现strchr 5.实现strcmp 6.实现memcpy
2018-03-22 12:08
477 查看
模拟实现strcpy (字符串拷贝)(后者拷贝到前者)
#include <stdio.h> #include <string.h> #include <assert.h> char *my_strcpy (char *str_des , const char *str_source) { char *ret = str_des; assert(str_des); assert(str_source); while(*str_des++ = *str_source++) { ; } return ret; } int main() { char str[]="abcdef158"; char arr[20]; my_strcpy(arr,str); printf("%s\n",arr); return 0; }12345678910111213141516171819202122 2。 模拟实现strcat (字符串拼接)(后者衔接在前者后边)
#include <stdio.h> #include <string.h> #include <assert.h> char *my_strcat (char *dest ,const char *src) { char *ret = dest; assert(dest); assert(src); while(*dest) { dest++; } while(*dest++ = *src++) { ; } return ret; } int main() { char str[]="abcdef158"; char arr[20]="9981"; my_strcat(arr,str); printf("%s\n",arr); return 0; }1234567891011121314151617181920212223242526 3。 模拟实现strcmp (字符串比较) (相等返回0 前者大于后者返回正数 后者大与前者返回负数)
#include <stdio.h> #include <string.h> int my_strcmp (char *dest ,char *src) { int ret; while(!(ret = *(unsigned char *)dest -*(unsigned char *)src)) { dest++; src++; } if(ret > 0) { return 1; }else if(ret < 0) { return -1; }else { return 0; } } int main() { int x; int y; char str[]=" "; char arr[]="abc"; x = my_strcmp(str,arr); y = strcmp(str,arr); printf("my_strcmp = %d\n",x); printf("strcmp = %d\n",y); return 0; }123456789101112131415161718192021222324252627282930313233344。 模拟实现strstr (字符串查找)(找到后输出 没找到返回NULL)
#include <stdio.h> #include <string.h> #include <assert.h> char *my_strstr (const char *src ,const char *dest) { const char *str1 = src; const char *str2 = dest; char *ret = NULL; assert(dest); assert(src); if(*dest=='\0') return NULL; while(*str1) { ret = str1; while(*str2) { if(*str1 && *str2 && (*str1 == *str2)) { str1++; str2++; } else { break; } } if(*str2 == '\0') { return ret; } str1++; } return NULL; } int main() { char str[]="1234abc886"; char arr[]="abc"; char *ps = NULL; char *pp = NULL; ps = my_strstr(str,arr); pp = strstr(str,arr); printf("%s\n",pp); if(ps) { printf("find:%s\n",ps); } else { printf("no find\n"); } return 0; }
相关文章推荐
- 模拟实现函数库中的常用函数,1实现strcpy 2.实现strcat 3.实现strstr 4.实现strchr 5.实现strcmp 6.实现memcpy 7.实现memmove,8实现memset
- 模拟实现C库函数strcpy,strcat,strstr,strchr,strcmp,memcpy,memmove
- 字符串函数模拟实现(strcpy,strcat,strstr,strchr,strcmp,memcpy,memmove)
- 模拟实现strcpy、strcat、strstr、strchr、strcmp、memcpy、memmove
- 模拟实现c库函数strcpy,strcat,strstr,strcmp,memcpy,memmove
- strcat,strcpy,strcmp,strstr,memset,memcpy,strsep在内核中的实现
- 模拟实现strcmp,strncmp,strstr,strcat,strncat,strcpy,strncpy,strlen ,memcpy,memmove等函数
- strlen,strcpy,strcat,strcmp,strstr,memcpy,的模拟实现方式
- 模拟实现: strstr strcpy strlen strcat strcmp memcpy memmove
- strcpy strlen memcpy strcat strcmp strstr strrev函数的实现代码
- 模拟实现strlen,strcpy,strcat,strstr,strcmp,memcpy,memmove
- 模拟实现: strstr strcpy strlen strcat strcmp memcpy memmove
- 字符串处理函数的模拟实现(strlen、strstr、strcat、strcmp、strcpy、memmove、memcpy)
- 自己实现memcpy/strcpy/strcmp/strcat/strlen/strstr
- 模拟库函数(strcpy,strcat,strchr,strstr,strcmp,memcpy,memmove)
- 自己实现memcpy/strcpy/strcmp/strcat/strlen/strstr
- 模拟实现部分库函数(strcpy,strcmp,strcat,strstr,memcpy,memmove,memset)
- 自定义实现字符串处理函数 strlen strcmp strcpy strncpy strcat strncat strchr strstr
- strcpy,strcmp,strstr,strcat,memcpy,memmove,memset的模拟实现
- 模拟实现字符串操作函数(strcpy,strstr,strcat,strcmp,strlen)与内存操作函数(memcpy,memmove)