首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

VC++ 6.0 中 CString 按行號整行替換的實現思路

     編輯:程式設計疑難解答

需求

在 VC++ 6.0 使用 CString 時,根據指定行號實現整行文本替換。

核心思路

  1. 將 CString 內容按換行符(\n 或 \r\n)分割為行陣列。
  2. 判斷目標行號是否有效(首行、尾行、中間行)。
  3. 替換對應行內容,重新拼接字串。

關鍵代碼片段

void ReplaceLine(CString& str, int nLine, CString newLine) {
    // 統一換行符
    str.Replace(_T("\r\n"), _T("\n"));
    // 分割
    CStringArray lines;
    int start = 0;
    while (true) {
        int pos = str.Find(_T('\n'), start);
        if (pos == -1) { lines.Add(str.Mid(start)); break; }
        lines.Add(str.Mid(start, pos - start));
        start = pos + 1;
    }
    // 替換(行號從 1 開始)
    if (nLine >= 1 && nLine <= lines.GetSize()) {
        lines.SetAt(nLine - 1, newLine);
    }
    // 重組
    str.Empty();
    for (int i = 0; i < lines.GetSize(); ++i) {
        str += lines[i];
        if (i != lines.GetSize() - 1) str += _T("\n");
    }
}

注意事項

處理末尾無換行符、空行、行號越界等邊界情況。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved