The Arduino supports two kinds of string:
- C-style character arrays, which the Arduino documentation refers to as strings (lower case 's')
- String objects, which the the Arduino documentation refers to as Strings (capital 'S')
The later is similar to std::string from the C++ standard library but slightly different. It is an Arduino specific implementation included in the Arduino core library. The Arduino does not use the C++ standard library as it would increase the size of your program too much.
You'll probably find the Arduino String class does what you need. The most significant difference it has from std::string is that is does not support new or delete operators but in most situations this is actually a good thing, new and delete are only used for dynamic (heap based) memory allocations which generally have no place on a 8-bit microcontroller with very limited RAM.
The fact that Arduino does not support new or delete operators does not preclude the use of C++ classes, constructors, etc. It just means that you can not dynamically create and allocate memory to them. This page shows several examples of using the various contructors supported by the Arduino String class. In fact most Arduino librarys are implmented using classes, it's just that when you create instances of these class, they are allocated on the stack or as global variables, rather than dynamically allocated with the new operator.