Я пытаюсь сделать программу, которая полностью выравнивает / выравнивает по левому и правому краям заданную строку. Я уже сделал часть, где вы знаете, сколько пробелов должно быть между словами в строке, но я не понимаю, как добавить или вставить эти пробелы между словами.
C++ полное выравнивание текста
comment
Это вопрос об алгоритме определения точки вставки пробелов или о конкретных деталях того, как добавить эти пробелы в нужное место?
- person David Rodríguez - dribeas   schedule 05.03.2014
comment
Пожалуйста, сформулируйте вопрос более конкретно. Какие-либо предложения? очень широк и может быть закрытым.
- person Adrian McCarthy   schedule 05.03.2014
Ответы (3)
Вы могли
подсчитайте, сколько слов в каждой строке
делим количество пробелов на количество слов, теперь мы знаем сколько пробелов в среднем нужно добавить к каждому слову
для каждого слова в строке слово += [количество пробелов]
person
SparkyRobinson
schedule
04.03.2014
Простой алгоритм для распространения:
for (int i=0; i<num_words-1; i++) {
int s0 = i * extra_spaces / (num_words - 1);
int s1 = (i + 1) * extra_spaces / (num_words - 1);
// add (s1 - s0) spaces between word[i] and word [i+1]
}
person
6502
schedule
04.03.2014
Найдите длину строки - sl
Подсчитайте количество пробелов - n
Вычислить разницу между l и длиной линии - ll
Рассчитайте ширину каждого пробела - w
w=(ll-sl)/n
Выведите строку по одному слову, продвигаясь вперед на w, если у вас есть пробел.
person
Ken Down
schedule
05.02.2018