Откуда берется ваша большая струна?Поскольку вы говорите, что читаете это, я предполагаю, что это происходит из файла.Вы должны знать всю строку, чтобы знать, где ее разбить?Если нет, вы можете просто прочитать файл char за символом, пока не достигнете маркера разделения, поместите все прочитанные до сих пор символы в строку и начните читать следующую строку.Вы бы примерно знали, где отсортировать только что прочитанную строку?Если это так, вы можете записать частичные строки в отдельные файлы (например, все строки, начинающиеся с буквы A, переходят к A.tmp при сортировке строк по алфавиту) при первом запуске.После этого вы можете отсортировать (надеюсь, теперь достаточно маленький, чтобы уместить в вашей памяти) содержимое созданных файлов и, наконец, добавить содержимое в новый выходной файл.