最終更新日時(UTC):
が更新

履歴 編集

function
<string>

std::basic_string::compare

int compare(const basic_string& str) const noexcept;                  // (1)
int compare(size_type pos1, size_type n1,
            const basic_string& str) const;                           // (2)

int compare(size_type pos1, size_type n1,
            const basic_string& str,
            size_type pos2, size_type n2) const;                      // (3) C++11まで
int compare(size_type pos1, size_type n1,
            const basic_string& str,
            size_type pos2, size_type n2 = npos) const;               // (3) C++14から

int compare(const charT* s) const;                                    // (4)
int compare(size_type pos1, size_type n1,
            const charT* s) const;                                    // (5)
int compare(size_type pos1, size_type n1,
            const charT* s, size_type n2) const;                      // (6)

int compare(std::basic_string_view<charT, traits> sv) const noexcept; // (7) C++17

int compare(size_type pos1,
            size_type n1,
            std::basic_string_view<charT, traits> sv) const;          // (8) C++17

int compare(size_type pos1,
            size_type n1,
            std::basic_string_view<charT, traits> sv,
            size_type pos2,
            size_type n2 = npos) const;                               // (9) C++17

概要

他の文字列との比較を行う。

効果

  • (1) 自身の文字列長とパラメータstrの文字列長のうち、小さい長さをrlenとし、traits::compare(data(), str.data(), rlen)を呼び出す。
  • (7) 自身の文字列長とパラメータsvの文字列長のうち、小さい長さをrlenとし、traits::compare(data(), sv.data(), rlen)を呼び出す。

戻り値

  • (1) 比較結果が非0を返した場合は、比較結果をそのまま返す。そうでなければ、以下の条件に従って戻り値を返す:

    条件 戻り値
    size() < str.size() 0未満の値を返す
    size() == str.size() 0を返す
    size() > str.size() 0より大きい値を返す
  • (2) basic_string(*this, pos1, n1).compare(str) と同等

  • (3) basic_string(*this, pos1, n1).compare(basic_string(str, pos2, n2)) と同等
  • (4) compare(basic_string(s)) と同等
  • (5) basic_string(*this, pos, n1).compare(basic_string(s)) と同等
  • (6) basic_string(*this, pos, n1).compare(basic_string(s, n2)) と同等
  • (7) (1)と同様の結果を返す。
  • (8) basic_string_view<charT, traits>(this.data(), pos1, n1).compare(sv) と同等
  • (9) basic_string_view<charT, traits>(this.data(), pos1, n1).compare(sv, pos1, n2) と同等

#include <iostream>
#include <string>

int main()
{
  std::string a = "abc";
  std::string b = "abc";
  std::string c = "ab";

  std::cout << a.compare(b) << std::endl;
  std::cout << a.compare(c) << std::endl;
}

出力例

0
1

参照