Not directly, but can if you .c_str() with them - although using the specific C++ string operations (or std::algorithm functions) are much the better way as George shows above.
And "not directly" is why I said the C functions can't (shouldn't) be used on C++ strings. Using c_str() is not exactly a topic for a beginner just starting out IMO.
Dev-C++ in all its various incarnations have problems, including the recent forks by Embarcadero and Red Panda. The IDE won't allow for any use of C++ language standard beyond C++11 even when the underlying compiler is capable of a later language standard.
If you are able get a newer compiler/IDE, there are free ones available that will allow using a later C++ language standard.
If your OS is not Windows there are versions of Code::Blocks available. MacOS and *nix have pre-compiled binaries available.
Another issue with Dev-C++ that can show up when using it on Windows 10 x64. 32-bit apps can get blocked by the OS. They will not run. Not always, but enough times it becomes a PITA. 64-bit versions of the same code have no problems.
I tried it, yes, I tried it. That is why I said it is not good C++ code. IMO sloppy and a royal mess from just reading what was provided and after throwing it into my copy of Dev-C++.
Hint, hint, using the non-standard headers, especially <bits/stdc++h>, won't work with all compilers. Visual Studio, another IDE I have and use, doesn't have that header.
<conio.h> is a Windows only header. Compilers for other OSes, MacOS and *nix, don't have the header. Even if they did the functionality is very specific to Windows.
Well-written C/C++ code should be as platform neutral as possible.
You want to continue writing sub-standard/non-standard code, that is your choice.
I don't think a+ or a[i++] are any different, as both are string.
You instantiate your C++ string as being empty.
a[i++] doesn't increase the string's size, it assumes the string is already of the desired size. That is C string logic that will end up writing past the end of the string's memory.
a+= c; concatenates to the end of the C++ string, increasing the string's size with each added character read from the input stream. Still C string logic that is marginally better. Not good C++, though.