2010-11-08 31 views
0

如何實現手動字符串拆分算法,以適應它到矩形(插入...或\ n在需要的地方) 我可以計算字符串的長度(以像素爲單位)。字符串,以適合矩形

我有非標準的std :: string和含有 RECT結構左,上,寬度,高度 如何字符串分割成單詞短語,它的尺寸是不大於給定大小

返回寬度的矩形的大像素中的字符串

int GetStringWidth(std::string str)
+4

你是否假設每個人都知道你在說什麼,世界上所有的程序員都使用與你相同的編譯器/操作系統/ gizmo工具箱? – 2010-11-08 15:55:47

+0

請指定您的工作操作系統和編譯器 – 2010-11-08 15:57:44

+0

standart C++編譯器,操作系統並不重要 – tga 2010-11-08 16:02:36

回答

0

您還沒有提供任何背景信息,因此無法回答您的問題。從你給我的東西,只需計算矩形的寬度,並將字符串的長度設置爲矩形的寬度減去插入的額外空間。

+0

+1抵制不公平-1(你是對的,這個問題沒有包含足夠的信息) – 2010-11-08 16:18:30

3

好吧,假設只有左對齊,一個很基本的方法是這樣的:

你介紹兩個指數lineStart/lineEnd這標誌着你的輸入字符串可能的文本行的開始和結束。然後循環輸入字符串中的所有單詞,並檢查每個單詞是否可以添加到當前行而不超過矩形寬度。如果是,則相應地增加lineEnd。如果不是,則將當前片段[lineStart..lineEnd]添加到結果中,然後將lineStart/lineEnd重置爲當前單詞的開始位置(它將成爲下一行的第一個單詞)。

有幾個邊界案例需要考慮,包括(但可能不限於)單個單詞可能比矩形寬度更寬的可能性;最後一行可能也需要明確的處理。

1

拆分字符串(使用您選擇的分隔符 - 我假設您希望它是空格),然後遍歷字符串標記,打印每個字符串直到您無法將其填充到剩餘空間中,然後去下一行繼續前進。

See this post for how to split a string