最終更新日時:
が更新

履歴 編集

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)

概要

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

効果

  • (1) 自身の文字列長とパラメータstrの文字列長のうち、小さい長さをrlenとし、traits::compare(data(), str.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))

#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

参照