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

C++ string 刪除指定下標字符:使用 erase() 而非賦值空字符

     編輯:程式設計綜合問答

錯誤嘗試

std::string ss = "sdfsefsf";
ss[3] = '\0';  // 或 NULL
// 結果:第 4 字符變空字符,長度不變,輸出見「sdf\0efsf」

正確方法:erase()

std::string ss = "sdfsefsf";
// 刪除第 4 個字符(下標 3)
ss.erase(ss.begin() + 3);  
// 結果:ss == "sdsefsf",長度變 7

erase 重載速查

語法說明範例
erase(pos, len)從 pos 刪除 len 個字符s.erase(3, 2) 刪除下標 3、4
erase(iterator)刪除單個迭代器位置字符s.erase(s.begin()+3)
erase(first, last)刪除範圍 [first, last)s.erase(s.begin()+2, s.begin()+5)

注意事項

  • string 內部自動管理記憶體,erase 會移動後續字符並更新長度,無需手動釋放。
  • 若需高頻刪除/插入,考慮 std::list<char> 或 rope(SGI STL 扩展)。
  • C 風格 char[] 需手動 memmove 並維護結束符,建議優先用 std::string。

記住:刪除用 erase,別用賦值空字符。

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