Może i można, ale podpowiedź takiej kombinacji nie dotyczy pytania Juli.
Panuje takie nieuzasadnione stereotypowe myślenie - stringi [C++] są za wolne w zastosowaniach. Ale jeżeli tak to porównujemy je do czegoś, co jest [dużo] szybsze. Ale w takim razie użyjmy w tym czymś szybszym, w tablicach char [stringi C] takich samych opetracji, jakich używamy w stringach C++, np append, delete, insert i po przetestowaniu dopiero wtedy możemy wyciągać wnioski co jest szybsze a co wolniejsze.
Okazuje się, dzięki komentarzowi @tarpauwatratar, że jest rope, ale w tym zadaniu, ja używam stringów tylko do wczytywania kolejnych wyrazów i natychmiastowego ich obrabiania i wypisywania, więc te wszystkie dodatkowe operacje i rope są dla mnie nieprzydatne. Jeżeli jednak ktoś lubi kombinować …