У меня есть простая функция переноса слов, которая принимает длинную строку в качестве входных данных, а затем разбивает эту строку на меньшие строки и добавляет их в массив для вывода позже.Сейчас последнее слово или два не выводятся.Это главная проблема.Тем не менее, я также хотел бы улучшить функцию.Я знаю, что это немного грязно.Мне было интересно, есть ли лучшие способы решения этой проблемы.Я думаю, что массив не нужен, но я не знаю, как еще это сделать.После того, как массив заполнен всеми меньшими строками, я просто выводю их в текстовый файл.Будем очень благодарны за любые предложения.
Вот функция переноса слов:
void WordWrap(string inputString, string formatedAr[], const int SIZE)
{
unsigned int index;
unsigned int word;
unsigned int max = 65;
string outWord;
string outLine;
outWord = "";
outLine = "";
word = 0;
for(int i = 0; i < SIZE; i++)
{
formatedAr[i] = "";
}
for(index = 0; index <= inputString.length(); index++)
{
if(inputString[index] != ' ')
{
outWord += inputString[index];
}
else
{
if(outLine.length() + outWord.length() > max)
{
formatedAr[word] = outLine;
word++;
outLine.clear();
}
outLine += outWord + " ";
outWord.clear();
}
}
formatedAr[word] = outLine;
}
И вот где я вызываю функцию и выводю массив:
WordWrap(dvdPtr -> synopsis, formatedAr, SIZE);
index = 0;
while(index < SIZE && formatedAr[index] != "")
{
outFile << formatedAr[index] << endl;
index++;
}