Advertisement
Guest User

Untitled

a guest
Dec 12th, 2018
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.15 KB | None | 0 0
  1. #include <stdlib.h>
  2. char *_strcpy(char **to,char *from);
  3. char *_heapstr(char *input);
  4. size_t _strlen(char *string);
  5. int _strcmp(char *str1,char *str2);
  6. int _strcmp(char *str1,char *str2)
  7. {
  8.     size_t len1=_strlen(str1);
  9.     size_t len2=_strlen(str2);
  10.     if(len1!=len2)
  11.     {
  12.         return 0;
  13.     }
  14.     size_t comp=0;
  15.     for(size_t i=0;i<len1;i++)
  16.     {
  17.         if(*(str1+i)==*(str2+i))
  18.         {
  19.             comp++;
  20.         }
  21.     }
  22.     return comp==len1?1:0;
  23. }
  24. char *_heapstr(char *input)
  25. {
  26.     if(input==NULL)
  27.     {
  28.         return NULL;
  29.     }
  30.     size_t len=_strlen(input);
  31.     char *ret=(char *)malloc((len+1)*sizeof(char));
  32.     if(ret==NULL)
  33.     {
  34.         return NULL;
  35.     }
  36.     for(size_t i=0;i<len;i++)
  37.     {
  38.         *(ret+i)=*(input+i);
  39.     }
  40.     *(ret+len)='\0';
  41.     return ret;
  42. }
  43. char *_strcpy(char **to,char *from)
  44. {
  45.     if(from==NULL)
  46.     {
  47.         return NULL;
  48.     }
  49.     size_t len=_strlen(from);
  50.     char *ret=(char *)malloc((len+1)*sizeof(char));
  51.     if(ret==NULL)
  52.     {
  53.         return NULL;
  54.     }
  55.     for(size_t i=0;i<len;i++)
  56.     {
  57.         *(ret+i)=*(from+i);
  58.     }
  59.     *(ret+len)='\0';
  60.     *to=ret;
  61.     return ret;
  62. }
  63. size_t _strlen(char *string)
  64. {
  65.     if(string==NULL)
  66.     {
  67.         return 0;
  68.     }
  69.     size_t ret=0;
  70.     while(*(string+(ret++))!='\0')
  71.     {
  72.         ;
  73.     }
  74.     return --ret;
  75. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement