#include <cctype>
#include <cstdlib>
#include <cstring>
#include <iostream>

char *
my_strupr(char *s)
{
  char *start = s;
  for (; *s; ++s)
    *s = std::toupper(*s);
  return start;
}

char *
my_strdup(char const *src)
{
  char *dst = new char[ std::strlen(src) + 1 ];
  std::strcpy(dst, src);
  return dst;
}

char *
strupr_copy(char const *s)
{
  return my_strupr(my_strdup(s));
}

int
main()
{
  char const *src = "Hello, World!";
  char *      dst = strupr_copy(src);
  std::cout << src << " --> " << dst << '\n';
  delete dst;
}
