比较运算符是一种双目运算符,得到bool型结果。
比较运算符 | 示例 | 结果 |
== | 4==3 | 0 |
!= | 4!=3 | 1 |
< | 4<3 | 0 |
> | 4>3 | 1 |
<= | 4<=3 | 0 |
>= | 4>=3 | 1 |
在C++中,支持两种风格的字符串,它们各自的比较方式不同的。
-
C语言风格字符串
eg:char str1[]="string1"或者char *str2="string1"
如果使用运算符比较,则比较的是内存地址。若想比较内容需要用到函数strcmp。
strcmp(str1,str2)的结果 | 含义 |
-1 | 字符串str1小于字符串str2 |
0 | 字符串str1等于字符串str2 |
1 | 字符串str1大于字符串str2 |
案例代码
int main() {
SetConsoleOutputCP(CP_UTF8);
char str1[]="string1";
char *str2="string2",*str3="string1",*str4="string";
//一定要加()否则会报错。此处比较的是str1和str2的内存地址,结果为0,表示占用不同的内存空间
cout<<"str1==str2:"<<(str1==str2)<<endl;
cout<<"str1!=str2:"<<(str1!=str2)<<endl;
//如果相比较str1和str2的内容,需要用到strcmp函数
cout<<"strcmp(str1,str2):"<<(strcmp(str1,str2))<<endl;
cout<<"strcmp(str1,str3):"<<(strcmp(str1,str3))<<endl;
cout<<"strcmp(str1,str4):"<<(strcmp(str1,str4))<<endl;
return 0;
}
案例结果图
-
C++风格字符串(string类型)
进行对比的两个字符串至少有1个是string类型,即可使用运算符比较。
C++对string类型参与的运算符进行重载,确保可以进行内容对比。
案例代码
//只要比较中有一个是string类型就可以用比较运算符比较内容
string a1="str";
char a2[]="str";
cout<<"a1是否等于a2:"<<(a1==a2)<<endl;