-->

C ++的文字充分理由(C++ text full justification)

2019-10-19 12:07发布

我试图做到这一点充分证明/左程序和右对齐给定的字符串。 我已经做了,你知道有多少位必须词在字符串中的一部分,但我不明白的是如何添加或在字与字之间插入的处所。

Answer 1:

你可以

看看有多少话是每行

通过单词数把数位,现在我们知道需要多少空间将被添加到每个词平均

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



Answer 2:

一个简单的算法做了铺展

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


Answer 3:

查找字符串的长度 - SL

计数的空间数量 - N的

计算L和线的长度之间的差 - LL

计算每个空间的宽度 - 瓦特

 w=(ll-sl)/n

在一次打印字符串一个字,用W前进,当你有一个空格。



文章来源: C++ text full justification