CString將字元 n 替換為指定字串

2021-07-09 16:35:42 字數 783 閱讀 5285

最近寫乙個excel批量處理的程式,需要將換行符替換為\r\n

,但是想了很多辦法卻不能實現,如下:

本來是要將「\r\n」替換為"\r\n

",但是發現從excel或其他檔案中讀取出來的字串在二進位制視窗中發現只有換行符,即'\n'(ascii碼為0a),而回車'\r'(ascii碼為0d)卻沒有了,因此使用cstring的replace(_t("\r\n"),_t("\r\n

"))就無效了。

於是我就想用cstring的replace(_t("\n"),_t("\r\n

")),但是發現不成功,因為如果是乙個字元的話,replace不會將其視為字串,而是當做字元來處理,如果前乙個引數是字元的話,第二個引數也必須是字元,不符合業務要求,不能達到目的,於是該方法也淘汰。

到第二天,突然靈感來了,於是瘋狂寫下如下這段**,終於成功了!

// 將回車換行替換為段

int nindex=0;

cstring strtemp;

tchar szold[5]=;

tchar sznew[15]=;

// 將換行解析為段

while((nindex=strwalkthrough.find('\n',nindex+1))>0)

不知道你們看懂了沒有,

我的想法是找到'\n'字元,然後取後面兩個位元組(因為可能是中文,最好取兩個位元組),然後將'\n'和後面兩個位元組拼成字串,再替換為想要的結果,即replace(_t("\nx"),_t("

\r\nx"))就成功了,"x"代表與'\n'相鄰的後面的字串。

劍指offer 將字串中空格替換為20

將乙個字串中的所有空格替換成 20 最直觀的做法是從頭到尾掃瞄字串,然後每次碰到空格時便替換,並將空格後面所有的字元向後移兩個位元組。假設字串長度為n,對每個空格字元,需要移動後面o n 個字元,因此對含有n個空格的字串而言總的時間效率是o n 2 時間複雜度達到n平方,說明程式效率並不高,因此可以...

面試題,將we替換為you,將you替換為we

第一次用vc做面試題,原題如下 檔案評審 michel需要評審乙份檔案,但是卻有另一件緊急的事情要處理,於是請好友jack幫忙評審一下。當michel看到jack評審結果後,發現乙個問題,jack是以第一人稱評審的,現有michel需要將jack評審中第一人稱 we 和第二人稱 you 進行置換 y...

劍指offer 將字串中的空格替換為20

include include include include include include include include include include using namespace std 將字串中的空格替換成20 從後往前替換,遇到空格就替換為20 同時指向替換後字串的指標向前移動3個位...