ホームページ >バックエンド開発 >C++ >C で文字列の一部を置換するにはどうすればよいですか?

C で文字列の一部を置換するにはどうすればよいですか?

DDD
DDDオリジナル
2024-12-22 18:08:11710ブラウズ

How Can I Replace Parts of a String in C  ?

文字列セグメントを新しい文字列に置き換える

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。