Я пытаюсь сделать программу, которая полностью оправдывает / левое и правое выравнивание данной строки. Я уже сделал часть, где вы знаете, сколько пробелов должно быть между словами в строке, но я не понимаю, как добавить или вставить эти пробелы между словами.
Вы могли бы
посчитайте, сколько слов в каждой строке
разделите пробелы на количество слов, теперь мы знаем, сколько пробелов нужно добавить к каждому слову в среднем
для каждого слова в строке слово + = [количество пробелов]
Простой алгоритм для разбрасывания
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]
}
Найти длину строки — sl
Подсчитать количество пробелов — n
Рассчитайте разницу между l и длиной линии — ll
Рассчитать ширину каждого пробела — ш
w=(ll-sl)/n
Выведите строку по одному слову за раз, продвигаясь на w, когда у вас есть пробел.