Aleks11

Hola challenge

Sep 14th, 2013
209
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.96 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <conio.h>
  3. #include <memory.h>
  4. #include <string.h>
  5. #include <malloc.h>
  6.  
  7. void str_cpy(char **const _ppDest, char const *const _psSource)
  8. {
  9.     int nSourceSize = -1, nSize = 0;
  10.     while (_psSource[++nSourceSize]) {};
  11.     if (*_ppDest)
  12.         nSize = _msize(*_ppDest);
  13.     if (nSize < nSourceSize + 1)
  14.         *_ppDest = new char[nSourceSize + 1];
  15.     memcpy(*_ppDest, _psSource, nSourceSize + 1);
  16. }
  17.  
  18. void str_cat(char **const _ppDest, char const *const _psSource)
  19. {
  20.     int nSourceSize = -1, nSize = 0, nDestSize = -1;
  21.     while (_psSource[++nSourceSize]) {}; while ((*_ppDest)[++nDestSize]) {};
  22.     if (*_ppDest)
  23.         nSize = _msize(*_ppDest);
  24.     if (nSize < nDestSize + nSourceSize)
  25.         *_ppDest = new char[nDestSize + nSourceSize + 1];
  26.     memcpy(*_ppDest + nDestSize, _psSource, nSourceSize + 1);
  27. }
  28.  
  29. int main()
  30. {
  31.     char *s = nullptr;
  32.  
  33.     str_cpy(&s, "Hola Hola");
  34.     str_cpy(&s, s + 5);
  35.     str_cat(&s, " World");
  36.  
  37.     printf("%s!\n", s);
  38.  
  39.     _getch();
  40.     return 0;
  41. }
Advertisement
Add Comment
Please, Sign In to add comment