C ++文本完全正当

时间:2014-03-04 21:55:12

标签: c++ justify text-justify

我正在尝试做一个完全证明/左右对齐给定字符串的程序。我已经创建了一个部分,你知道字符串中的单词之间需要有多少空格,但我没有得到的是如何在单词之间添加或插入这些空格。

3 个答案:

答案 0 :(得分:0)

你可以

计算每行的单词数

将数字空格除以单词数,现在我们知道平均每个单词需要添加多少空格

对于字符串中的每个单词,单词+ = [空格数]

答案 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]
}

答案 2 :(得分:0)

找到字符串的长度 - sl

计算空格数 - n

计算l与行长度之间的差值 - ll

计算每个空间的宽度 - w

 w=(ll-sl)/n

一次打印一个字符串,当你有空格时按w前进。