用新字串取代字串片段
用替代字串取代字串的特定部分是程式設計的常見任務。在 C 中,標準函式庫提供了一個方便的解決方案來實現此目的。
要替換子字串,您可以利用 find() 函數來定位目標子字串在原始字串中的起始位置。隨後,您可以利用replace()函數將目標子字串替換為所需的替換字串。
以下程式碼片段示範了該過程:
bool replace(std::string& str, const std::string& from, const std::string& to) { size_t start_pos = str.find(from); if(start_pos == std::string::npos) return false; str.replace(start_pos, from.length(), to); return true; } std::string string("hello $name"); replace(string, "$name", "Somename");
透過採用此方法,您可以根據需要有效修改字串的一部分。
處理多個替換
在某些情況下,您可能需要替換字串中特定子字串的多個實例。為了解決這個問題,您可以考慮使用replaceAll()函數,它類似於以下內容:
void replaceAll(std::string& str, const std::string& from, const std::string& to) { if(from.empty()) return; size_t start_pos = 0; while((start_pos = str.find(from, start_pos)) != std::string::npos) { str.replace(start_pos, from.length(), to); start_pos += to.length(); // In case 'to' contains 'from', like replacing 'x' with 'yx' } }
此函數迭代字串,找到所有出現的指定子字串並將其替換為提供的替換字串。
以上是如何有效率地替換 C 中的子字串?的詳細內容。更多資訊請關注PHP中文網其他相關文章!