字符串比较运算

一、比较运算符

String 类的常见运算符包括 >、<、==、>=、<=、!=。其意义分别为”大于”、”小于”、”等于”、”大于等于”、”小于等于”、”不等于”。比较大小以ASCII码表对应的值为准。

比较运算符使用起来非常方便,此处不再介绍其函数原型,大家直接使用即可。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <string>
using namespace std;

int main(){
    string S1 = "abc";
    string S2 = "ABC";
    string S3 = "DEF";
    string S4 = "DEFG";
    string S5 ="DEF";
    
    if(S1>S2) cout<<S1<<'>'<<S2<<" is true"<<endl;
    if(S3>S2) cout<<S3<<'>'<<S2<<" is true"<<endl;
    if(S4>S3) cout<<S4<<'>'<<S3<<" is true"<<endl;
    if(S5==S3)cout<<S3<<'='<<S5<<" is true"<<endl;
    if(S1!=S5)cout<<S1<<"!="<<S5<<" is true"<<endl;
    return 0;
}

二、compare( )函数

compare函:数若参与比较的两个串值相同,则函数返回 0;若字符串 S 按字典顺序要先于 S2,则返回负值;反之,则返回正值。具体值是二者在排序顺序中的第一个不相同字符的相差的整数。举例说明如何使用 string 类的 compare() 函数。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <string>
using namespace std;
int main (){
    int a,b,c,d,e,f;
    string A="aBcdef";
    string B="AbcdEf";
    string C="123456";
    string D="123dfg";
    string E="123";
       
     a=A.compare(B); //完整的A和B的比较,如果不相等,返回两个字符串第一个字母的差值
     b=A.compare(1,5,B,0,6); //"Bcdef"和"AbcdEf"比较,返回两个字符串不同的第一个字母的差值
     c=A.compare(1,5,B,4,2); //"Bcdef"和"Ef"比较,比较B和E
     d=C.compare(0,4,D,0,4);//1234与123d比较,前三个字符相同,比较4和d
     e=C.compare(0,3,D,0,3); //比较123和123,相等返回0
     f=D.compare(E); //比较123dfg和123,返回1
    cout << " a = " << a << ", b = " << b <<", c = " << c << ", d = " << d << ", e="<<e<<", f="<<f<<endl;
    
    return 0;
}
Scroll to Top