C での文字列の終わりの決定
文字列操作における一般的な操作の 1 つは、指定された文字列が別の文字列で終わるかどうかを確認することです。この機能は、テキスト処理、パターン マッチング、ファイル分析などのさまざまなアプリケーションで重要です。
C では、文字列が特定の部分文字列で終わるかどうかを確認する方法が複数あります。効率的な方法の 1 つは、標準 C ライブラリで利用可能な std::string::compare 関数を利用することです。
compare 関数は 2 つの文字列を比較し、結果を表す整数値を返します。元の文字列の最後の部分と潜在的な終了部分文字列を比較することで、それらが一致するかどうかを判断できます。
次のコードは、このアプローチを実装する方法を示しています。
<code class="cpp">#include <iostream> bool hasEnding(const std::string& fullString, const std::string& ending) { if (fullString.length() >= ending.length()) { return (0 == fullString.compare(fullString.length() - ending.length(), ending.length(), ending)); } else { return false; } } int main() { std::string test1 = "binary"; std::string test2 = "unary"; std::string test3 = "tertiary"; std::string test4 = "ry"; std::string ending = "nary"; std::cout << hasEnding(test1, ending) << std::endl; std::cout << hasEnding(test2, ending) << std::endl; std::cout << hasEnding(test3, ending) << std::endl; std::cout << hasEnding(test4, ending) << std::endl; return 0; }</code>
このコードではでは、まず 2 つの文字列を入力として受け取る関数 hasEnding を定義します。この関数は、最初の文字列が 2 番目の文字列で終わるかどうかを示すブール値を返します。
関数内で、最初の文字列の長さが 2 番目の文字列の長さ以上であるかどうかを確認します。そうでない場合、関数は false を返します。
長さのチェックに合格した場合は、compare を使用して最初の文字列の最後の部分を 2 番目の文字列と比較します。 2 つの文字列が等しい場合、compare 関数は 0 を返します。これは、最初の文字列が 2 番目の文字列で終わるかどうかを判断するためにチェックするものです。
main 関数は、複数の入力文字列を使用して hasEnding 関数をテストし、結果を出力します。
以上がC で文字列が特定の部分文字列で終わるかどうかを判断する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。