Cuando trabajas con textos en C nunca hay que olvidar que las constantes de cadena son
punteros y no realmente una cadena como en Pascal. En C++ estos pueden convertirse en objetos "string" haciendo la cosa algo más sencilla; me han dicho que desde el C99 la cosa ha mejorado mucho, aunque no lo he comprobado.
La última vez que usé C++ los objetos "string" se comportaban a veces como cadenas Pascal y otras como punteros C, según le diera el aire, lo cual era un dolor en algunas ocasiones (errores difíciles de localizar). Si han arreglado eso, bien por ellos.