title: Why are so many string types in C++?
body: <p>I like C, I have a C book called Full and Full C and 2 C++, I find these languages fantastic because of their incredible power and performance, but I have to end many of my projects because of these various types.</p>
  
  <p>I say to have <code>std::string</code>, <code>LPCSTR</code>, <code>System::String</code>, <code>TCHAR []</code>, <code>char s [] = "ss"</code>, <code>char * s</code>?</p>
  
  <p>This causes tremendous headaches mainly in GUI applications, WinAPI has the problem of <code>LPCSTR</code> not being compatible with char or <code>std::string</code>, and now in CLR applications if it has <code>System::String</code> that gives a lot of headache to convert to <code>std::String</code> or <code>char * s</code> or even <code>char s []</code>.</p>
  
  <p>Why don’t C/C++ have its string type unique like <code>String</code> in Java?</p>