@Zerpent
But I wanted to start using cstring instead since I guess that's better for C++.
What is cstring?!
As for the header file named cstring in C++ programs then it contains declarations of standard C functions as for example strlen.
It seems that you get the error again because it is possible that inside header file "ZerpAlarm.h" there are also some references to std::string. If so then you should include <string> also in this file.
There are three headers which is probably the cause of your confusion:
1 2 3
#include <string.h> // This contains utilities for modifying c-style string
#include <cstring> // This is the C++ version of the library above. It effectively just puts everything in std::
#include <string>// this contains the std::string class.