ホームページ > バックエンド開発 > C++ > C でプレフィックスを確認し、数値部分文字列を抽出するにはどうすればよいですか?

C でプレフィックスを確認し、数値部分文字列を抽出するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-11-03 09:22:29
オリジナル
788 人が閲覧しました

How Can I Check for Prefixes and Extract Numeric Substrings in C  ?

C でのプレフィックスの確認と数値部分文字列の抽出

Python では、文字列が特定のプレフィックスで始まるかどうかを確認し、部分文字列をinteger は簡単なタスクです。ただし、C では、同様の機能を実現する方法がすぐには分からない場合があります。

文字列が特定の部分文字列で始まるかどうかを判断するには、pos パラメーターを 0 に設定して rfind 関数を利用できます。これにより、検索が文字列の先頭に限定されるようになります。例:

<code class="cpp">std::string str = "tititoto";
if (str.rfind("titi", 0) == 0) {
    // The string starts with "titi"
}</code>
ログイン後にコピー

上記の例では、pos がゼロに設定されており、検索がプレフィックスに限定されています。したがって、文字列が指定された部分文字列で始まる場合、rfind は 0 を返します。それ以外の場合は、失敗を示す std::string::npos が返されます。

C 20 以降では、std::string および std::string_view にstarts_with が導入されたため、プロセスが簡素化されています。

<code class="cpp">std::string str = "tititoto";
if (str.starts_with("titi")) {
    // The string starts with "titi"
}</code>
ログイン後にコピー

文字列から数値部分文字列を抽出するには、std::stoi を使用できます。たとえば、「--foo=98」のような文字列がある場合、次のように数値を抽出できます。

<code class="cpp">std::string arg = "--foo=98";
std::size_t pos = arg.find("--foo=");
if (pos != std::string::npos) {
    std::string foo = arg.substr(pos + sizeof("--foo=") - 1);
    int foo_value = std::stoi(foo);
}</code>
ログイン後にコピー

この場合、find を使用して " の位置を特定します。 --foo= プレフィックス。見つかった場合は、 substr を使用して部分文字列を抽出し、 std::stoi を使用して整数に変換します。

これらの手法は、C で文字列を操作するための効率的で簡潔なソリューションを提供します。

以上がC でプレフィックスを確認し、数値部分文字列を抽出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート