Ага, не совсем ясно какой язык тебя ограничивает
В C как я понимаю вообще никаких трабл? действительно, как Pavel L сказал либо статичный char[10000], либо вообще char *str, потом кастаешь на него new на сколько надо

И так же, думаю, в большинстве сиподобных языков.
А например, в Delphi последних версий (у меня седьмая): стандартный
string == AnsiString ... держит от 4 байт до 2Гб символов, если конечно не пересадить его {$H-} на ShortString (1-255 символов). так что тут заморачиваться даже не надо.