substr - это Си. Если будешь пользоваться сишными функциями, то и будешь всю жизнь так думать. Посмотри на библиотеку boost, там реализована куча крутых ништяков, в том числе и работа со строками.
С++ это не язык, а религия. Кто на нем начал писать, тот уже скорее всего не свернет с этой дороги. =))) Нигде больше нельзя себе выстрелить из пистолета в ногу и кричать что это хорошо.
Только не нужно бредить-философствовать что этот язык изживает себя и т. д. Пока жители Россиюшки стабильно встают с колен (постят 95 процента контента на форумах подобные темы), китайцы, индусы и прочие иностранцы на плюсах хуячат нормальные программы.