swarley

DynString

Mar 4th, 2012
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.93 KB | None | 0 0
  1. /******************************************************
  2.  *  Rabbit Dynamic Types                              *
  3.  *    -- String                                       *
  4.  ******************************************************/
  5.  
  6. #include <stdlib.h>
  7. #include <string.h>
  8.  
  9. typedef struct rabbit_string
  10. {
  11.         int length;
  12.         char str[1];
  13. } rabbit_string;
  14.  
  15. rabbit_string *rabbit_string_new(int length, char *value)
  16. {
  17.         rabbit_string *strn = (rabbit_string*) malloc((sizeof(char)*length)+sizeof(struct rabbit_string));
  18.         strn->length = length;
  19.         memcpy(strn->str, value, length*sizeof(char));
  20.         strn->str[length] = '\0';
  21.         return strn;
  22. }
  23.  
  24. void rabbit_string_cat(rabbit_string *rs, char *s)
  25. {
  26.      strcat(rs->str, s);
  27. }
  28.  
  29.  
  30. void rabbit_string_ncat(rabbit_string *rs, char *s, int lim)
  31. {
  32.      strncat(rs->str, s, lim);
  33. }
  34.  
  35. void rabbit_string_delete(rabbit_string *rs)
  36. {
  37.      free(rs);
  38. }
Add Comment
Please, Sign In to add comment