Advertisement
avr39-ripe

work

Apr 6th, 2020
432
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.31 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. int strlenM(const char* str)
  4. {
  5.     int len{ 0 };
  6.     //for (; *str++; ++len);
  7.     while (*str++)
  8.     {
  9.         ++len;
  10.     }
  11.     return len;
  12. }
  13.  
  14. void strdupM(const char* src, char* dest)
  15. {
  16.     while (*src)
  17.     {
  18.         *dest++ = *src++;
  19.     }
  20.     *dest = '\0';
  21. };
  22.  
  23. char* strndupM(const char* src, char* dest, int size)
  24. {
  25.     for (int cnt{ 0 }; *dest++ = (cnt < size - 1 ? *src++ : 0); cnt++);
  26.     return dest;
  27. }
  28.  
  29. char* strcpyM(const char* src, char* dest)
  30. {
  31.     for (dest += strlenM(dest); *dest++ = *src++;);
  32.     return dest;
  33. }
  34.  
  35. char* strncpyM(const char* src, int size, char* dest)
  36. {
  37.     //int cnt{ strlenM(dest) };
  38.     //for (dest += cnt; *dest++ = (cnt < size - 1 ? *src++ : '\0'); cnt++);
  39.     int cnt{ 0 };
  40.     for (; *dest++; ++cnt);
  41.     --dest;
  42.     for (; *dest++ = (cnt < size - 1 ? *src++ : '\0'); cnt++);
  43.     return dest;
  44. }
  45.  
  46. int main()
  47. {
  48.     //char str[20]{ 'H', 'e', 'l','l','o',' ',',','w', 'o', 'r','l','d','!' };
  49.     char str[20]{ "Hello, world!" };
  50.     char* strDyn{ new char[30]{ "Hello" } };
  51.  
  52.     char* str1{ new char[10]{", world!"} };
  53.  
  54.     strncpyM(str1, 30, strDyn);
  55.  
  56.     //strndupM("Test str copy",5, str1);
  57.     std::cout << strDyn << '\n';
  58.  
  59.     //std::cout << strlenM(strDyn) << '\n';
  60.     //char* strOut{ strDyn };
  61.     //while (*strOut)
  62.     //{
  63.     //  std::cout << *strOut++;
  64.     //}
  65.     //std::cout << '\n';
  66.     delete[] strDyn;
  67.     delete[] str1;
  68. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement