Passer des char* en parametre sans jamais passer de longueur, c'est un peu comme faire de la voltige sans filet. Au premier oubli d''\0' terminal (et non "\0", comme j'ai fait récemment ici-même), crac, la sanction est immédiate et définitive.
Visiblement, tu aimes le risque.
Heureusement, Mr C++ a inventé le string (pas de mauvaise plaisanterie, SVP). Avec la classe string, tu passes les chaines en paramètres sans avoir à gérer leurs longueurs, et ce sans aucun risque d'écrasement mémoire, et en plus, cette classe a le bon goût de venir avec tout un tas de méthodes bien pratiques pour le traitement des chaines de caractères.
Donc oui, il faut utiliser les string.
Si tu ne comprends pas le code de Taz, c'est qu'il est temps de prendre un bon bouquin de C++ et de le potasser (voir Biblio links C++).