(七十一)关系表达式

简介:

关系表达式的重点是关系运算符,有以下几个。

关系运算符

意义

>

大于,即前者大于后者(以下略)

<

小于

==

等于,“=”的意思是赋值

!=

不等于

>=

大于等于

<=

小于等于

 

优先级:

关系运算符的优先级,比 运算符 的优先级低。

例如: a+1 > b; 先进行计算的是a+1,然后判断a+1>b是真还是假

 

 

C-风格字符串的表达式判断:

当我们判断一个变量是否等于1时,我们可以用 a==1;来进行判断,假如等于,返回true,假如不等于,返回false。

 

但是在C-风格字符串中,是不能这么做的。

 

原因在于,字符串的变量名,实际上是字符串的内存地址。

 

假如一个指针指向这个字符串内存地址,那么这个指针可以和这个字符串的变量名相等。

 

但是若两个字符串之间进行判断,那么就不用用“==”来进行判断了。

 

应使用函数strcmp(字符串1,字符串2)来进行判断,

假如相同,则返回值为0,

假如不等,则返回值为1.

 

注意,这个函数内的字符串1和字符串2,实际上是内存地址。即,这个函数通过内存地址来判断内存地址的值是否相等。

 

上代码:

#include<iostream>

int main()
{
	using namespace std;
	char aa[6] = "hello";
	char bb[6] = "aello";
	for (int i = 1;strcmp(aa, bb);i++)	//strcmp(aa,bb)判断aa和bb是否相同,相同返回0,不同返回1。
		//因为for的循环判断语句,返回值为true(1)则继续执行循环——即不同,返回值为false(0)则停止执行循环——即两个字符串相同
	{
		bb[0] = char(char('a') + i - 1);//char('a')是字符a,他以数字编码形式储存在内存中,因此可以和int类型相加,更改为int('a')是等价的
		//外面的char()是将里面的数字编码,以字符的形式显示出来,并赋值给bb字符串的第一个成员
		cout << bb << endl;
	}
	system("Pause");
	return 0;
}


输出:

aello
bello
cello
dello
eello
fello
gello
hello
请按任意键继续. . .

总结:

①可以这么理解:

strcmp(字符串1,字符串2)根据内存地址,判断字符串是否不同

是不同,返回true——即1

是相同,返回false——即0

是不同,则继续执行循环语句

是相同,则不执行循环语句。

——不这样理解好别扭,这样理解也好别扭。

 

②按照说明,strcmp需要头文件<cstring>,但实际中,我没引用也可以正常使用啊?

 

③变种:

strcmp(字符串1,字符串2)==0;

这个表达式的意思就是,判断字符串是否相同:

相同,前面部分为0,表达式为1——继续执行循环语句

不同,前面部分为1,表达式为0——停止执行循环

 

和不带==0的刚好相反。

不带“==0”的,相同,停止执行。——用于需要相同字符串时

带“==0”的,相同,继续执行。——用于需要不同字符串时

 

 

string类字符串判断:

和C-风格字符串判断相比,要简单的多,可以直接用“==”或者“!=”关系判断符来判断两个string类字符串是否相同。

 

 

例如:

for (int i = 1;aa!=bb;i++)

只需要将前面的代码strcmp(aa,bb)改为aa!=bb;即可。

因为满足不等于,则执行循环,满足等于,则不执行循环。

 



目录
相关文章
|
2月前
|
C语言
C语言程序设计核心详解 第二章:数据与数据类型 4种常量详解 常见表达式详解
本文详细介绍了C语言中的数据与数据类型,包括常量、变量、表达式和函数等内容。常量分为整型、实型、字符型和字符串常量,其中整型常量有十进制、八进制和十六进制三种形式;实型常量包括小数和指数形式;字符型常量涵盖常规字符、转义字符及八进制、十六进制形式;字符串常量由双引号括起。变量遵循先定义后使用的规则,并需遵守命名规范。函数分为标准函数和自定义函数,如`sqrt()`和`abs()`。表达式涉及算术、赋值、自增自减和逗号运算符等,需注意运算符的优先级和结合性。文章还介绍了强制类型转换及隐式转换的概念。
|
5月前
|
C语言 C++ 容器
c++primer plus 6 读书笔记 第五章 循环和关系表达式
c++primer plus 6 读书笔记 第五章 循环和关系表达式
|
6月前
|
编译器 程序员 C语言
【C++ 类型系统】了解C++ 中 标量、复合、标准布局、平凡和聚合类型
【C++ 类型系统】了解C++ 中 标量、复合、标准布局、平凡和聚合类型
221 0
|
6月前
|
C++
关系表达式:编程中的比较利器
在编程中,关系表达式扮演着至关重要的角色。它们允许我们比较两个或多个值,并基于这些比较的结果来执行相应的操作。关系表达式通过返回布尔值(真或假)来告诉我们两个值之间的关系,从而帮助我们在程序中做出决策。
56 0
|
6月前
|
Java
基本概念【算术、 关系、逻辑、位、字符串、条件、优先级等运算符】(三)-全面详解(学习总结---从入门到深化)
基本概念【算术、 关系、逻辑、位、字符串、条件、优先级等运算符】(三)-全面详解(学习总结---从入门到深化)
70 0
|
编译器 C++
c++中基本类型详细解释外加基本运算规则
类型 含义 wchat_t 宽字符 bool 布尔类型 char 字符 chat16_t unicode字符 chat_32 unicode字符 short 短整型 int 整形 long 长整型 longlong 长整型 float 单精度浮点型 double 双精度浮点型 longdouble 扩展精度浮点型
119 1
|
C++
C++ Primer Plus 第五章答案 循环和关系表达式
只有聪明人才能看见的摘要~( ̄▽ ̄~)~
65 0
|
前端开发
浅聊组合函数
经历过一些列的函数式编程思想的学习总结,一些重要的高阶函数的学习,以及前一段时间关于 RxJS 的学习。
JavaSE (五)关系,逻辑,其它运算符解释说明
JavaSE 关系,逻辑,其它运算符解释说明
110 0
|
vr&ar
【集合论】等价关系 ( 等价关系概念 | 等价关系示例 | 等价关系与闭包 )
【集合论】等价关系 ( 等价关系概念 | 等价关系示例 | 等价关系与闭包 )
806 0
【集合论】等价关系 ( 等价关系概念 | 等价关系示例 | 等价关系与闭包 )