【C/C++】string类型的compare函数

C++string的compare()比较函数

  • 两个字符串相同,返回0。
  • 调用字符串小于被调用字符串,返回-1。
  • 调用字符串大于被调用字符串,返回 1。

字符串说的大小通常和字典顺序是一致的。 字符串小的在字典里靠前,字符串大的在字典里靠后。即返回值是-1的话,调用字符串比被调用字符串靠前;返回值是1的话,调用字符串比被调用字符串靠后。

compare()比较时,是逐字符比较的,一旦能比较出结果,就不再比较了。 例如“abc”和“adf”,首先a和a比较,比不出结果;则b和d比较,结果就是“abc”小于“adf”,返回 -1,即字典里“abc”在“adf”前面。例如“abc”和“abcd”比较,若“abc”都比完了,“abcd”还没完,说明“abc”小,返回值为 -1,字典里“abc”靠前。总之记住这个比较规则和字典顺序一致即可。

代码:

# include
using namespace std;
int main()
{
    string s1="abandon";
    string s2="about";
    int b=s1.compare(s2);//直接比较,s1小于s2,故返回-1
    cout<<b<<endl;

    int c=s1.compare(2,4,s2);//s1下标为2的字符a开始的4个字符ando和s2进行比较。ando大于s2故返回1
    cout<<c<<endl;

    int d=s1.compare(2,4,s2,1,3);
    cout<<d<<endl;//s1下标为2的字符a开始的4个字符ando和s2下标为1的字符b开始的3个字符bou比较。前者小,故返回-1。

    string s3="abc";
    string s4="abc";
    int e=s3.compare(s4);//相等返回0
    cout<<e<<endl;

    return 0;
}

博客转载

你可能感兴趣的:(c++基本知识,c++,string,compare)