如何在一個文章中找每一段的第一個字,以及處理換行後的空白 |
答題得分者是:RedSnow
|
Miki-lion
中階會員 發表:90 回覆:180 積分:54 註冊:2005-04-24 發送簡訊給我 |
平台:C/C++/Buidler都可以
目標1:刪除一個文章當中的所有空白,但是句子與句子間至少留一個起來
也就是說困難是在每一段的第一個字如果是空白就必須刪除
問題1:如何知道用陣列讀取文章近來後,每一段的第一個字的陣列位址
(我想到的是換型控制字元後就是每一段的第一個,當然除了陣列[0]) 目標2:可以單獨只刪除"換行",這比較簡單,只是我不知道怎去判斷換行
問題2:我想的方法是判斷換行的ASCII碼,但是多少我不知道 問題3:總結以上,小弟認為要單獨做到刪除一個文章當中的所有空白,
但是句子與句子間至少留一個起來,每一段的第一個字如果是空白
就必須刪除,並且可以單獨判斷換行的程式寫法是這樣的 1.判斷陣列[0]
2.判斷換行前的所有空白
3.判斷換行
4.判斷換行後的空白
請高手指正一下
在附上我自己寫的刪空白程式
(Bug是在每段的第一個空白無法刪除,換行沒有單獨的刪除功能,只能一起跟空白刪除)
#include
|
RedSnow
版主 發表:79 回覆:1322 積分:845 註冊:2003-12-15 發送簡訊給我 |
Miki-lion 您好: 建議您改用 AnsiString 來處理,檔案可由 TMemo 或 TStringList 來讀取,然後使用 Trim() 與 StringReplace() 來代換掉空白字元,例如:
Memo1->Lines->LoadFromFile("space.txt"); AnsiString tmp = Memo1->Text; // 去除所有換行字元,使整個檔案變成一行文字資料 tmp = StringReplace(tmp, "\r\n", "", TReplaceFlags()<若要處理其它字元,可比照上述方式辦理。 如果您需要保留各行的獨立性,那麼就改成用迴圈來處理: Memo1->Lines->LoadFromFile("space.txt"); AnsiString tmp; for(int i=0; i發表人 - RedSnow 於 2005/05/07 13:19:17 |
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
|
accepter
一般會員 發表:15 回覆:10 積分:5 註冊:2005-05-07 發送簡訊給我 |
|
RedSnow
版主 發表:79 回覆:1322 積分:845 註冊:2003-12-15 發送簡訊給我 |
Miki-lion 您好: 我剛才在另一篇討論中,發現自己的處理程序有盲點,如果您打算接受我的建議,使用 StringReplace() 函式來過濾空白字元的話,請將那兩行連續過濾空白字元的 StringReplace() 敘述改成如下所示,以確保任意數量的空白字元被過濾成單一空白字元:
while (tmp.Pos(" ") != 0) { // 檢查字串是否含有連續兩個空白字元? tmp = StringReplace(tmp, " ", " ", TReplaceFlags()< |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |