社区
Delphi
帖子详情
为什么结果不相同,两个字符串?
walkmangood
2011-08-01 10:01:47
大家看下面的语句,为什么结果不相同呢?
edit2.Text:='AABB3322';
if pchar(edit2.Text)<>pchar('AABB3322') then
showmessage('不相同')
else
showmessage('相同');
显示的是“不相同”,谁给解答一下。
...全文
121
11
打赏
收藏
为什么结果不相同,两个字符串?
大家看下面的语句,为什么结果不相同呢? edit2.Text:='AABB3322'; if pchar(edit2.Text)pchar('AABB3322') then showmessage('不相同') else showmessage('相同'); 显示的是“不相同”,谁给解答一下。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
walkmangood
2011-08-01
打赏
举报
回复
[Quote=引用 10 楼 richardi 的回复:]
pchar是指向CHAR型的指针 ,你用 pchar(edit2.Text)<>pchar('AABB3322')实际上比较的是2个指针,不是指针指向的值,虽然2个指针的值相同,但是他们指向的位置不同,所以你怎么比都不相同。看下面测试把地址显示出来就清楚了
procedure TForm1.btn1Click(Sender: TObject);
var p1,p2:Pointer;
be……
[/Quote]
谢谢耐心解答,:)
richardi
2011-08-01
打赏
举报
回复
pchar是指向CHAR型的指针 ,你用 pchar(edit2.Text)<>pchar('AABB3322')实际上比较的是2个指针,不是指针指向的值,虽然2个指针的值相同,但是他们指向的位置不同,所以你怎么比都不相同。看下面测试把地址显示出来就清楚了
procedure TForm1.btn1Click(Sender: TObject);
var p1,p2:Pointer;
begin
edit2.Text:='AABB3322';
p1:=pchar(edit2.Text);
p2:=pchar('AABB3322');
ShowMessage(IntToStr(Integer(p1))+' '+IntToStr(Integer(p2)));
end;
linghengmao
2011-08-01
打赏
举报
回复
樓上正解
风之谷
2011-08-01
打赏
举报
回复
PCHAR()是 个指针, = <>号 在对指针进行比较时 是比较指针地址是否一致,
五哥
2011-08-01
打赏
举报
回复
pchar 是指针 ,应该是这个的原因
yqdragon
2011-08-01
打赏
举报
回复
pchar是指针,指向不一样
曼尼叔叔
2011-08-01
打赏
举报
回复
if pchar(edit2.Text)<>pchar('AABB3322') then
edit2.text和'AABB3322'各自占用这一块内存,那么两个指针指向的地址肯定就不一样了
walkmangood
2011-08-01
打赏
举报
回复
edit2.Text:='AABB3322';
if pchar(edit2.Text)<>'AABB3322' then
showmessage('不相同')
else
showmessage('相同');
但是去掉pchar这样就相同了
纯冰糖
2011-08-01
打赏
举报
回复
pchar是以Null结束的字符串指针
林石公
2011-08-01
打赏
举报
回复
估计是成了比较两个指针了,所以不同
纯冰糖
2011-08-01
打赏
举报
回复
内存中存储形式不同
java六大必须理解的问题 文档
java六大必须理解的问题、内容比较详细、写的比较具体
C语言 如何比较
两个
字符串
?如何在C语言中实现
字符串
的连接和复制?
一、如何比较
两个
字符串
?比较
两个
字符串
的方法取决于你使用的编程语言。以下是几种常见编程语言中比较
字符串
的方法:在中,你可以使用标准库函数strcmp()来比较
两个
字符串
。该函数接受
两个
指向
字符串
的指针作为参数,并返回一个整数值来表示
两个
字符串
的比较结果。如果str1等于str2,则返回0;如果str1小于str2,则返回一个负整数;如果str1大于str2,则返回一个正整数。==compare()=在中,你可以使用equals()方法来比较
两个
字符串
对象的内容是否相等。
JAVA中判断
两个
字符串
是否相等
Java中判断
字符串
是否相等 相等判断操作符 == Java中, ==相等判断符用于判断基本数据类型和引用数据类型。当判断基本数据类型时,判断的是数值,当判断引用数据类型时,判断变量是否指向同一引用对象。 使用 ==判断
字符串
时,判断的是
两个
字符串
是否指向同一个对象。如果
两个
字符串
指向同一个对象,那么它们就是
相同
的,使用 ==比较的结果也就是True。 如果
两个
字符串
指向不同的对象,那么它们不
相同
,使用 ==比较的结果也就是False。 通过字面赋值的时候,
相同
的
字符串
会指向同一个对象,例如: 但如果另有
算法2:判断
两个
字符串
内容是否
相同
详细描述 判断
两个
字符串
的内容是否
相同
,指的是
两个
字符串
中的字符是否完全一样,顺序可以不同(也可以称之为换位
字符串
)。比如
字符串
1为”abc”,
字符串
2为”cba”,则认为这
两个
字符串
内容是一样的,再比如
字符串
1为”aba”,
字符串
2为”abaa”,则认为
两个
字符串
内容不同。因此,
两个
字符串
内容
相同
包含的意思就是:
两个
字符串
长度
相同
,并且
字符串
的字符完全一样(顺序可以不同)。 分析 在算法1中,...
查询
两个
字符串
中
相同
字符
查询
两个
字符串
中
相同
字符 for 历遍第一个
字符串
的字符,过程中用 in 检测字符是否存在于第二个
字符串
中。若是在则将其添加在列表中。 一、函数文件: def intersect(seq1,seq2): #定义交集函数,函数名及变量 res=[] #定义空列表用来盛放
相同
字符 for x in seq1: #历遍
字符串
1 if x in seq2: #历遍
字符串
1的每个字符同时判断是否在
字符串
2中有
相同
字符 r
Delphi
5,928
社区成员
262,931
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章