如何實現手動字符串拆分算法,以適應它到矩形(插入...或\ n在需要的地方) 我可以計算字符串的長度(以像素爲單位)。字符串,以適合矩形
我有非標準的std :: string和含有 RECT結構左,上,寬度,高度 如何字符串分割成單詞短語,它的尺寸是不大於給定大小
返回寬度的矩形的大像素中的字符串
int GetStringWidth(std::string str)
如何實現手動字符串拆分算法,以適應它到矩形(插入...或\ n在需要的地方) 我可以計算字符串的長度(以像素爲單位)。字符串,以適合矩形
我有非標準的std :: string和含有 RECT結構左,上,寬度,高度 如何字符串分割成單詞短語,它的尺寸是不大於給定大小
返回寬度的矩形的大像素中的字符串
int GetStringWidth(std::string str)
您還沒有提供任何背景信息,因此無法回答您的問題。從你給我的東西,只需計算矩形的寬度,並將字符串的長度設置爲矩形的寬度減去插入的額外空間。
+1抵制不公平-1(你是對的,這個問題沒有包含足夠的信息) – 2010-11-08 16:18:30
好吧,假設只有左對齊,一個很基本的方法是這樣的:
你介紹兩個指數lineStart/lineEnd這標誌着你的輸入字符串可能的文本行的開始和結束。然後循環輸入字符串中的所有單詞,並檢查每個單詞是否可以添加到當前行而不超過矩形寬度。如果是,則相應地增加lineEnd。如果不是,則將當前片段[lineStart..lineEnd]添加到結果中,然後將lineStart/lineEnd重置爲當前單詞的開始位置(它將成爲下一行的第一個單詞)。
有幾個邊界案例需要考慮,包括(但可能不限於)單個單詞可能比矩形寬度更寬的可能性;最後一行可能也需要明確的處理。
拆分字符串(使用您選擇的分隔符 - 我假設您希望它是空格),然後遍歷字符串標記,打印每個字符串直到您無法將其填充到剩餘空間中,然後去下一行繼續前進。
你是否假設每個人都知道你在說什麼,世界上所有的程序員都使用與你相同的編譯器/操作系統/ gizmo工具箱? – 2010-11-08 15:55:47
請指定您的工作操作系統和編譯器 – 2010-11-08 15:57:44
standart C++編譯器,操作系統並不重要 – tga 2010-11-08 16:02:36