ホームページ >バックエンド開発 >C++ >std::string の rfind を使用して接頭辞を確認し、部分文字列を整数に変換するにはどうすればよいでしょうか?

std::string の rfind を使用して接頭辞を確認し、部分文字列を整数に変換するにはどうすればよいでしょうか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-01 19:41:30652ブラウズ

How can std::string's rfind be used to check for a prefix and convert a substring to an integer?

std::string の rfind オーバーロードを使用してプレフィックスを確認し、サブストリングを Int に変換する

C std::string が始まるかどうかを判断するには特定の文字列を使用して部分文字列を整数に変換すると、オーバーロードされた rfind 関数を利用できます。

文字列プレフィックスの確認

検索を受け入れる rfind オーバーロードを使用します。位置パラメータ (pos)。このパラメータをゼロに設定すると、検索が文字列の先頭に制限されます。

<code class="cpp">std::string s = "tititoto";
if (s.rfind("titi", 0) == 0) {
  // The string s starts with the "titi" prefix.
}</code>

部分文字列を Int に変換する

既知のプレフィックスの後の部分文字列を抽出して変換するにはこれを整数にするには、rfind と substr の組み合わせを使用できます:

<code class="cpp">std::string arg = "--foo=98";
size_t pos = arg.rfind("--foo=");
if (pos != std::string::npos) {
  std::string fooValue = arg.substr(pos + len("--foo="));
  int value = std::stoi(fooValue);
}</code>

この例では、arg が "--foo=98" の場合、変数値には整数値 98 が割り当てられます。

STL Advantage

このアプローチでは、Boost などの外部ライブラリが必要なくなります。 STL によって提供される標準の文字列操作を利用します。これは実装が簡単で効率的です。

C 20 の簡略化

C 20 以降では、std:: string クラスと std::string_view クラスには、starts_with メソッドが導入されており、プレフィックスのチェックがさらに簡単になります:

<code class="cpp">std::string s = "tititoto";
if (s.starts_with("titi")) {
  // The string s starts with the "titi" prefix.
}</code>

以上がstd::string の rfind を使用して接頭辞を確認し、部分文字列を整数に変換するにはどうすればよいでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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