In my opinion, you should learn both approaches. You will never know when C++ strings fail at doing exactly what you want, and you may want to use char arrays. Another good idea is to try to always learn what is actually going on inside. For example; estimate what happens inside a string, and maybe even attempt to create your own class the mimic the string's functionality. Another thing you might want to try is learn the use the C++ vector class. Then attempt to write your own vector class to get a grasp of how it works inside. Good luck!