文字列セグメントを新しい文字列に置き換える
C では、文字列の一部を別の文字列に置き換えるには、複数の操作を組み合わせる必要があります。一部のライブラリでは直接置換のための専用の replace() 関数が提供されていますが、標準の C 関数を使用してそれにアプローチする方法は次のとおりです。
find() 関数と replace() 関数の使用
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");
このアプローチでは、最初に出現した部分文字列 "$name" が置き換えられます。 " を "Somename."
すべての出現箇所を次のように置き換えますreplaceAll
部分文字列のすべての出現を置換するには、replace() メソッドを拡張して、文字列内の複数のインスタンスを検索して置換できます。
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(); // Adjust start position if 'to' contains 'from' } }
この関数は、指定された文字列内で出現するすべての部分文字列「from」を文字列「to」に連続的に置き換えます。
以上がC で文字列の一部を置換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。