C++基础---string类的operator==/operator!=/operator</operator<=/operator>/operator>=/compare

1. string类的operator==/operator!=/operator< /operator<=/operator>/operator>=/compare

1.1 bool operator==

  • 原型:bool operator== (const string& lhs, const string& rhs) noexcept;
  • 说明: 比较string型字符串lhs与string型字符串rhs是否相等。
  • 原型:bool operator== (const char* lhs, const string& rhs);
  • 说明: 比较char型字符串lhs与string型字符串rhs是否相等。
  • 原型:bool operator== (const string& lhs, const char* rhs);
  • 说明: 比较string型字符串lhs与char型字符串rhs是否相等。
  • 注意: 相等返回true,不相等返回false。
  • 代码示例:

    
    #include <iostream>
    
    
    #include <string>
    
    using namespace std;
    int main()
    {
        string str0="a lazy dog.";
        string str1="a lazy dog.";
    
        cout<<"bool operator== (const string& lhs, const string& rhs) noexcept;"<<endl;
        if (str0 == str1)
        {
            cout<<str0<<" 等于 "<<str1<<endl;
        }
        else
        {
            cout<<str0<<" 不等于 "<<str1<<endl;
        }
    
        cout<<"bool operator== (const char*   lhs, const string& rhs);"<<endl;
        if ("a lazy dog." == str1)
        {       
            cout<<"a lazy dog."<<" 等于 "<<str1<<endl;
        }
        else
        {
            cout<<"a lazy dog."<<" 不等于 "<<str1<<endl;
        }
    
        cout<<"bool operator== (const string& lhs, const char*   rhs);"<<endl;
        if (str0 == "a lazy dog.")
        {   
            cout<<str0<<" 等于 "<<"a lazy dog."<<endl;
        }
        else
        {
            cout<<str0<<" 不等于 "<<"a lazy dog."<<endl;
        }
    
        system("pause");
    
        return 0;
    }
    =>bool operator== (const string& lhs, const string& rhs) noexcept;
      a lazy dog. 等于 a lazy dog.
      bool operator== (const char*   lhs, const string& rhs);
      a lazy dog. 等于 a lazy dog.
      bool operator== (const string& lhs, const char*   rhs);
      a lazy dog. 等于 a lazy dog.

1.2 bool operator!=

  • 原型:bool operator!= (const string& lhs, const string& rhs) noexcept;
  • 说明: 比较string型字符串lhs与string型字符串rhs是否不相等。
  • 原型:bool operator!= (const char* lhs, const string& rhs);
  • 说明: 比较char型字符串lhs与string型字符串rhs是否不相等。
  • 原型:bool operator!= (const string& lhs, const char* rhs);
  • 说明: 比较string型字符串lhs与char型字符串rhs是否不相等。
  • 注意: 不相等返回ture,相等返回false。
  • 代码示例:

    
    #include <iostream>
    
    
    #include <string>
    
    using namespace std;
    int main()
    {
        string str0="a lazy dog";
        string str1="a lazy dog.";
    
        cout<<"bool operator!= (const string& lhs, const string& rhs) noexcept;"<<endl;
        if (str0 != str1)
        {
            cout<<str0<<" 不等于 "<<str1<<endl;
        }
        else
        {
            cout<<str0<<" 等于 "<<str1<<endl;
        }
    
        cout<<"bool operator!= (const char*   lhs, const string& rhs);"<<endl;
        if ("a lazy dog" != str1)
        {       
            cout<<"a lazy dog"<<" 不等于 "<<str1<<endl;
        }
        else
        {
            cout<<"a lazy dog"<<" 等于 "<<str1<<endl;
        }
    
        cout<<"bool operator!= (const string& lhs, const char*   rhs);"<<endl;
        if (str0 != "a lazy dog.")
        {   
            cout<<str0<<" 不等于 "<<"a lazy dog."<<endl;
        }
        else
        {
            cout<<str0<<" 等于 "<<"a lazy dog."<<endl;
        }
    
        system("pause");
    
        return 0;
    }
    =>bool operator!= (const string& lhs, const string& rhs) noexcept;
      a lazy dog 不等于 a lazy dog.
      bool operator!= (const char*   lhs, const string& rhs);
      a lazy dog 不等于 a lazy dog.
      bool operator!= (const string& lhs, const char*   rhs);
      a lazy dog 不等于 a lazy dog.

1.3 bool operator<

  • 原型:bool operator< (const string& lhs, const string& rhs) noexcept;
  • 说明: 比较string型字符串lhs是否小于string型字符串rhs。
  • 原型:bool operator< (const char* lhs, const string& rhs);
  • 说明: 比较char型字符串lhs是否小于string型字符串rhs。
  • 原型:bool operator< (const string& lhs, const char* rhs);
  • 说明: 比较string型字符串lhs是否小于char型字符串rhs。
  • 注意: 小于返回true,大于或等于返回false。
  • 代码示例:

    
    #include <iostream>
    
    
    #include <string>
    
    using namespace std;
    int main()
    {
        string str0="a lazy dog";
        string str1="a lazy dog.";
    
        cout<<"bool operator< (const string& lhs, const string& rhs) noexcept;"<<endl;
        if (str0 < str1)
        {
            cout<<str0<<" 小于 "<<str1<<endl;
        }
        else
        {
            cout<<str0<<" 大于等于 "<<str1<<endl;
        }
    
        cout<<"bool operator< (const char*   lhs, const string& rhs);"<<endl;
        if ("a lazy dog" < str1)
        {       
            cout<<"a lazy dog"<<" 小于 "<<str1<<endl;
        }
        else
        {
            cout<<"a lazy dog"<<" 大于等于 "<<str1<<endl;
        }
    
        cout<<"bool operator< (const string& lhs, const char*   rhs);"<<endl;
        if (str0 < "a lazy dog.")
        {   
            cout<<str0<<" 小于 "<<"a lazy dog."<<endl;
        }
        else
        {
            cout<<str0<<" 大于等于 "<<"a lazy dog."<<endl;
        }
    
        system("pause");
    
        return 0;
    }
    =>bool operator< (const string& lhs, const string& rhs) noexcept;
      a lazy dog 小于 a lazy dog.
      bool operator< (const char*   lhs, const string& rhs);
      a lazy dog 小于 a lazy dog.
      bool operator< (const string& lhs, const char*   rhs);
      a lazy dog 小于 a lazy dog.

1.4 bool operator<=

  • 原型:bool operator<= (const string& lhs, const string& rhs) noexcept;
  • 说明: 比较string型字符串lhs是否小于或等于string型字符串rhs。
  • 原型:bool operator<= (const char* lhs, const string& rhs);
  • 说明: 比较char型字符串lhs是否小于等于string型字符串rhs。
  • 原型:bool operator<= (const string& lhs, const char* rhs);
  • 说明: 比较string型字符串lhs是否小于等于char型字符串rhs。
  • 注意: 小于或等于返回true,大于返回false。
  • 代码示例:

    
    #include <iostream>
    
    
    #include <string>
    
    using namespace std;
    int main()
    {
        string str0="a lazy dog";
        string str1="a lazy dog.";
    
        cout<<"bool operator<= (const string& lhs, const string& rhs) noexcept;"<<endl;
        if (str0 <= str1)
        {
            cout<<str0<<" 小于等于 "<<str1<<endl;
        }
        else
        {
            cout<<str0<<" 大于 "<<str1<<endl;
        }
    
        cout<<"bool operator<= (const char*   lhs, const string& rhs);"<<endl;
        if ("a lazy dog" <= str1)
        {       
            cout<<"a lazy dog"<<" 小于等于 "<<str1<<endl;
        }
        else
        {
            cout<<"a lazy dog"<<" 大于 "<<str1<<endl;
        }
    
        cout<<"bool operator<= (const string& lhs, const char*   rhs);"<<endl;
        if (str0 <= "a lazy dog.")
        {   
            cout<<str0<<" 小于等于 "<<"a lazy dog."<<endl;
        }
        else
        {
            cout<<str0<<" 大于 "<<"a lazy dog."<<endl;
        }
    
        system("pause");
    
        return 0;
    }
    =>bool operator<= (const string& lhs, const string& rhs) noexcept;
      a lazy dog 小于等于 a lazy dog.
      bool operator<= (const char*   lhs, const string& rhs);
      a lazy dog 小于等于 a lazy dog.
      bool operator<= (const string& lhs, const char*   rhs);
      a lazy dog 小于等于 a lazy dog.

1.5 bool operator>

  • 原型:bool operator> (const string& lhs, const string& rhs) noexcept;
  • 说明: 比较string型字符串lhs是否大于string型字符串rhs。
  • 原型:bool operator> (const char* lhs, const string& rhs);
    说明: 比较char型字符串lhs是否大于string型字符串rhs。
  • 原型:bool operator> (const string& lhs, const char* rhs);
    说明: 比较string型字符串lhs是否大于char型字符串rhs。
  • 注意: 大于返回true,小于或等于返回false。
  • 代码示例:

    
    #include <iostream>
    
    
    #include <string>
    
    using namespace std;
    int main()
    {
        string str0="a lazy dog.";
        string str1="a lazy dog";
    
        cout<<"bool operator> (const string& lhs, const string& rhs) noexcept;"<<endl;
        if (str0 > str1)
        {
            cout<<str0<<" 大于 "<<str1<<endl;
        }
        else
        {
            cout<<str0<<" 小于等于 "<<str1<<endl;
        }
    
        cout<<"bool operator> (const char*   lhs, const string& rhs);"<<endl;
        if ("a lazy dog." > str1)
        {       
            cout<<"a lazy dog."<<" 大于 "<<str1<<endl;
        }
        else
        {
            cout<<"a lazy dog."<<" 小于等于 "<<str1<<endl;
        }
    
        cout<<"bool operator> (const string& lhs, const char*   rhs);"<<endl;
        if (str0 > "a lazy dog")
        {   
            cout<<str0<<" 大于 "<<"a lazy dog"<<endl;
        }
        else
        {
            cout<<str0<<" 小于等于 "<<"a lazy dog"<<endl;
        }
    
        system("pause");
    
        return 0;
    }
    =>bool operator> (const string& lhs, const string& rhs) noexcept;
      a lazy dog. 大于 a lazy dog
      bool operator> (const char*   lhs, const string& rhs);
      a lazy dog. 大于 a lazy dog
      bool operator> (const string& lhs, const char*   rhs);
      a lazy dog. 大于 a lazy dog

1.6 bool operator>=

  • 原型:bool operator>= (const string& lhs, const string& rhs) noexcept;
    说明: 比较string型字符串lhs是否大于或等于string型字符串rhs。
  • 原型:bool operator>= (const char* lhs, const string& rhs);
    说明: 比较char型字符串lhs是否大于或等于string型字符串rhs。
  • 原型:bool operator>= (const string& lhs, const char* rhs);
    说明: 比较string型字符串lhs是否大于或等于char型字符串rhs。
  • 注意: 大于或等于返回true,小于返回false。
  • 代码示例:

    
    #include <iostream>
    
    
    #include <string>
    
    using namespace std;
    int main()
    {
        string str0="a lazy dog.";
        string str1="a lazy dog";
    
        cout<<"bool operator>= (const string& lhs, const string& rhs) noexcept;"<<endl;
        if (str0 > str1)
        {
            cout<<str0<<" 大于等于 "<<str1<<endl;
        }
        else
        {
            cout<<str0<<" 小于 "<<str1<<endl;
        }
    
        cout<<"bool operator>= (const char*   lhs, const string& rhs);"<<endl;
        if ("a lazy dog." > str1)
        {       
            cout<<"a lazy dog."<<" 大于等于 "<<str1<<endl;
        }
        else
        {
            cout<<"a lazy dog."<<" 小于 "<<str1<<endl;
        }
    
        cout<<"bool operator>= (const string& lhs, const char*   rhs);"<<endl;
        if (str0 > "a lazy dog")
        {   
            cout<<str0<<" 大于等于 "<<"a lazy dog"<<endl;
        }
        else
        {
            cout<<str0<<" 小于 "<<"a lazy dog"<<endl;
        }
    
        system("pause");
    
        return 0;
    }
    =>bool operator>= (const string& lhs, const string& rhs) noexcept;
      a lazy dog. 大于等于 a lazy dog
      bool operator>= (const char*   lhs, const string& rhs);
      a lazy dog. 大于等于 a lazy dog
      bool operator>= (const string& lhs, const char*   rhs);
      a lazy dog. 大于等于 a lazy dog

1.7 std::string::compare

  • 原型:int compare (const string& str) const noexcept;
  • 说明:比较源字符串和string型字符串str的大小。
  • 代码示例:

    
    #include <iostream>
    
    
    #include <string>
    
    using namespace std;
    int main()
    {
        string str1 ("green apple");
        string str2 ("red apple");
    
        cout<<"int compare (const string& str) const noexcept;"<<endl;
        int result = str1.compare(str2);
    
        if(result == 0)
        {
            cout<<str1<<" 等于 "<<str2<<endl;
        }
        else
        {
            if(result > 0)
            {
                cout<<str1<<" 大于 "<<str2<<endl;
            }
            else
            {
                cout<<str1<<" 小于 "<<str2<<endl;
            }
        }
    
    
        system("pause");
    
        return 0;
    }
    =>int compare (const string& str) const noexcept;
      green apple 小于 red apple
  • 原型:int compare (size_t pos, size_t len, const string& str) const;
  • 说明:比较源字符串以下标为pos处开始的len个字符组成的字符串与string型字符串str的大小。
  • 代码示例:

    
    #include <iostream>
    
    
    #include <string>
    
    using namespace std;
    int main()
    {
        string str1 ("green apple");
        string str2 ("apple");
    
        cout<<"int compare (size_t pos, size_t len, const string& str) const;"<<endl;
        int result = str1.compare(6, 5, str2);
    
        if(result == 0)
        {
            cout<<str1.substr(6, 5)<<" 等于 "<<str2<<endl;
        }
        else
        {
            if(result > 0)
            {
                cout<<str1.substr(6, 5)<<" 大于 "<<str2<<endl;
            }
            else
            {
                cout<<str1.substr(6, 5)<<" 小于 "<<str2<<endl;
            }
        }
    
    
        system("pause");
    
        return 0;
    }
    =>int compare (size_t pos, size_t len, const string& str) const;
      apple 等于 apple
  • 原型:int compare (size_t pos, size_t len, const string& str, size_t subpos, size_t sublen = npos) const;
  • 说明:比较源字符串以下标为pos处开始的len个字符组成的字符串与string型字符串str中以下标为subpos处开始的sublen个字符组成的字符串的大小。
  • 代码示例:

    
    #include <iostream>
    
    
    #include <string>
    
    using namespace std;
    int main()
    {
        string str1 ("green apple");
        string str2 ("red apple");
    
        cout<<"int compare (size_t pos, size_t len, const string& str, size_t subpos, size_t sublen = npos) const;"<<endl;
        int result = str1.compare(6, 5, str2, 4, 5);
    
        if(result == 0)
        {
            cout<<str1.substr(6, 5)<<" 等于 "<<str2.substr(4, 5)<<endl;
        }
        else
        {
            if(result > 0)
            {
                cout<<str1.substr(6, 5)<<" 大于 "<<str2.substr(4, 5)<<endl;
            }
            else
            {
                cout<<str1.substr(6, 5)<<" 小于 "<<str2.substr(4, 5)<<endl;
            }
        }
    
    
        system("pause");
    
        return 0;
    }
    =>int compare (size_t pos, size_t len, const string& str, size_t subpos, size_t sublen = npos) const;
      apple 等于 apple
  • 原型:int compare (const char* s) const;
  • 说明:比较源字符串与char型字符串s的大小。
  • 代码示例:

    
    #include <iostream>
    
    
    #include <string>
    
    using namespace std;
    int main()
    {
        string str1 ("green apple");
    
        cout<<"int compare (const char* s) const;"<<endl;
        int result = str1.compare("red apply");
    
        if(result == 0)
        {
            cout<<str1<<" 等于 "<<"red apply"<<endl;
        }
        else
        {
            if(result > 0)
            {
                cout<<str1<<" 大于 "<<"red apply"<<endl;
            }
            else
            {
                cout<<str1<<" 小于 "<<"red apply"<<endl;
            }
        }
    
    
        system("pause");
    
        return 0;
    }
    =>int compare (const char* s) const;
      green apple 小于 red apple
  • 原型:int compare (size_t pos, size_t len, const char* s) const;
  • 说明:比较源字符串以下标为pos处开始的len个字符组成的字符串与char型字符串s的大小。
  • 代码示例:

    
    #include <iostream>
    
    
    #include <string>
    
    using namespace std;
    int main()
    {
        string str1 ("green apple");
    
        cout<<"int compare (size_t pos, size_t len, const char* s) const;"<<endl;
        int result = str1.compare(6, 5, "apple");
    
        if(result == 0)
        {
            cout<<str1.substr(6, 5)<<" 等于 "<<"apple"<<endl;
        }
        else
        {
            if(result > 0)
            {
                cout<<str1.substr(6, 5)<<" 大于 "<<"apple"<<endl;
            }
            else
            {
                cout<<str1.substr(6, 5)<<" 小于 "<<"apple"<<endl;
            }
        }
    
    
        system("pause");
    
        return 0;
    }
    =>int compare (size_t pos, size_t len, const char* s) const;
      apple 等于 apple
  • 原型:int compare (size_t pos, size_t len, const char* s, size_t n) const;
  • 说明:比较源字符串以下标为pos处开始的len个字符组成的字符串与char型字符串s的前n个字符组成的字符串的大小。
  • 代码示例:

    
    #include <iostream>
    
    
    #include <string>
    
    using namespace std;
    int main()
    {
        string str1 ("green apple");
    
        cout<<"int compare (size_t pos, size_t len, const char* s, size_t n) const;"<<endl;
        int result = str1.compare(6, 5, "apple.", 5);
    
        if(result == 0)
        {
            cout<<str1.substr(6, 5)<<" 等于 "<<"apple"<<endl;
        }
        else
        {
            if(result > 0)
            {
                cout<<str1.substr(6, 5)<<" 大于 "<<"apple"<<endl;
            }
            else
            {
                cout<<str1.substr(6, 5)<<" 小于 "<<"apple"<<endl;
            }
        }
    
    
        system("pause");
    
        return 0;
    }
    =>int compare (size_t pos, size_t len, const char* s, size_t n) const;
      apple 等于 apple
  • std::string::compare 返回值说明:
    (1)返回值value = 0,比较的两个字符串相等;
    (2)返回值value < 0,比较的两个字符串,前一个字符的值较低;
    (3)返回值value > 0,比较的两个字符串,后一个字符的值较低;

参考文献:
[1] 网络资源:
http://www.cplusplus.com/reference/string/string/operators/
http://www.cplusplus.com/reference/string/string/compare/

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值