Do tworzenia zmiennych przechowujących tekst. Przykładowo kiedy tworzysz klasę NPC, prawdopodobnie chcesz zapamiętać jego nazwę. To tekst.
class Npc
{
string nazwa;
char[] nazwa; //tak też można
char* nazwa; //tak robili jaskiniowcy
...
pc_thief.nazwa = "Diego";
String to prawie to samo co tablica charów. Różni się jedynie tym że przy tablicy charów to TY musisz wiedzieć kiedy ona się kończy (inaczej skończysz czytać za szybko albo za późno). A string wie "sam" - bo ma na końcu nulla który pełni taką samą funkcję jak kropka na końcu zdania.