string字符串的比较
复习字符串的比较规则:
按顺先从前往后比较
同序号的字符按“ASCII”码值比较
直到遇到对应字符不等或者字符串结束
字符串比较的“运算符”
==
>
<
>= (大于或者等于)
<= (小于或者等于)
!=
c++中,字符串的比较, 可以直接使用以上的”比较运算符”
比如:
str1 == str2
字符串比较的“结果”:bool类型
逻辑真 true
逻辑假 false
表示真假的布尔类型
C++语言中,有两种bool(布尔)类型的表示方式:
1.直接使用bool类型
bool x = true;
bool类型, 只有两个值:
true
false
2.使用0和非0的任何值(C语言风格)
0: 表示假
非0: 表示真
特别注意:
1>3 是假
1>3 == false 是真
3>1 是真
3>1 == false 是假
bool x;
x = 1 < 3;
类似:
对你的女神/男神说:
我爱你 => 是真
我爱你 == true => 是真
我爱你 == false => 是假
对你的备胎说:我爱你 => 是假
我爱你 == true => 是假
我爱你 == false => 是真
—
常见错误:
3>2>1 是假
3>2>1 => true>1 => 1>1 => false
3>2 && 2>1 使用“逻辑与”运算。
bool类型使用场合:
if 语句
C语言字符串的比较
#include <string.h>
int strcmp( const char *str1, const char *str2 );
例如:
int ret;
ret = strcmp(str1, str2);
返回值:
str1 < str2时, 返回值< 0(有些编译器返回 -1)
str1 > str2时, 返回值> 0(有些编译器返回 1)
str1 等于 str2时, 返回值为0
demo
#include <stdio.h> #include <string.h> #include <Windows.h> int main(void) { char addr[32]; int ret; printf("美女,你是哪里人?"); scanf("%s", addr); if (strcmp(addr, "湖南") == 0) { printf("美女,我们是老乡啊!\n"); } else { printf("美女,你和我的同学是老乡啊!\n"); } system("pause"); return 0; }
其它数据类型的比较运算
char, int, short, float, double等数据类型,都可以使用比较运算:
大于: >
大于或等于: >=
小于: <
小于或等于: <=
不等于: !=
等于: == (注意:不是 = )
比较运算的结果:(逻辑值)
结果为“真”: true
结果为“假”: false
#include <iostream> #include <Windows.h> using namespace std; int main(void) { int weight; printf("美女, 你多重啊?\n"); cin >> weight; if (weight >= 120) { cout << "美女, 如此丰满, 真有福气!" << endl; } else { cout <<"美女, 这么瘦, 身材不错啊!" << endl; } system("pause"); return 0; }