оправдать — полное текстовое обоснование C ++

Я пытаюсь сделать программу, которая полностью оправдывает / левое и правое выравнивание данной строки. Я уже сделал часть, где вы знаете, сколько пробелов должно быть между словами в строке, но я не понимаю, как добавить или вставить эти пробелы между словами.

1

Решение

Вы могли бы

посчитайте, сколько слов в каждой строке

разделите пробелы на количество слов, теперь мы знаем, сколько пробелов нужно добавить к каждому слову в среднем

для каждого слова в строке слово + = [количество пробелов]

0

Другие решения

Простой алгоритм для разбрасывания

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]
}
0

Найти длину строки — sl

Подсчитать количество пробелов — n

Рассчитайте разницу между l и длиной линии — ll

Рассчитать ширину каждого пробела — ш

 w=(ll-sl)/n

Выведите строку по одному слову за раз, продвигаясь на w, когда у вас есть пробел.

0
По вопросам рекламы [email protected]