#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; }
#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; }
#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; }
#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; }