IMO, то, над чем вы работаете до сих пор, выглядит / кажется больше похожим на код C, чем на код C ++.Я думаю, я бы начал с чего-то вроде:
- разбить ввод на объекты слова
- поменять пары объектов слова
- восстановить строку переставленных слов
Для этого я бы определил действительно минимальный класс строк.Почти все, что ему нужно (на данный момент), - это способность создавать строку с указателем на символ и длину (или что-то в этом порядке), а также возможность назначать (или менять) строки.
Iтакже определю токенизатор.Я не уверен, должна ли это быть функция или класс, но сейчас давайте просто скажем «функция».Все, что он делает, это смотрит на строку и находит начало и конец слова, получая что-то вроде указателя на начало и длину слова.
Наконец, вам нужно / нужно, чтобы массив содержалслова.Для первого шага вы можете просто использовать обычный массив, затем позже, когда / если вы хотите, чтобы массив автоматически расширялся по мере необходимости, вы можете написать небольшой класс для его обработки.