C++string 字符的比较(compare函数的使用)

  • Post author:
  • Post category:其他


compare()函数

compare函数

如果比较的内容相同就返回0,如果按字典顺序str1大就返回1,否则返回-1


基础用法

str1.compare("xxx");                    //直接比较字符常量
str1.compare(str2);                    //跟另外一个string型数据比较
str1.compare(3,str2);                   //截取前3个字符与str2比较
str1.compare(1,lenth,str2);            //从下标1的地方截取lenth长度的数据与str2比较(下标1就是               
                                         第二个字符)

str1.compare(1,lenth,str2,1,lenth)    //从下标1的地方截取lenth长度的数据与str2从下标1的地方截取                
                                       length长度的数据比较


实例

string str1="abbbc",str2="aabbbc";
cout<<str1.compare(str2)<<endl;    //结果是1,因为str1第二位的字典顺序比str2第二位的顺序大

str2="abbbc1";
cout<<str1.compare(str2)<<endl;    //结果是-1,因为在前面的字典顺序一样的情况下,str2多一位

str2="abbbc";
cout<<str1.compare(str2)<<endl;    //结果是0

注1:str1.compare(1.length,str2)中的length是截取的长度而不是结束的字符下标,例如2,3是从下标2截取到下标5;

注2:compare函数会区分字母大小写,字典顺序中a比A大

    string str1="abbbc";
	cout<<str1.compare("Abbbc")<<endl;    //结果是1


函数原形


类 basic_string 的成员函数 compare() 的原型如下:

int compare (const basic_string& s) const;

int compare (const Ch* p) const;

int compare (size_type pos, size_type n, const basic_string& s) const;

int compare (size_type pos, size_type n, const basic_string& s,size_type pos2, size_type n2) const;

int compare (size_type pos, size_type n, const Ch* p, size_type = npos) const;



版权声明:本文为BMGongsg1原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。