【C++】程序猿c++(11) 字符串比较误区总结

之前一直在写java,将java的字符串比较搞清楚后,写c++了,发现不适用了,还是存在很多细微差别,这里做个总结。

  1. 在比较两个字符串时不能利用符号“==”,如(“aaa”==“aaa”),“==”符号比较的是两个字符串的地址是否相等,切记!
  2. 若是比较两个字符,则可以用"=="直接进行比较
  3. 但比较两个string对象时是可以利用“==”的,相等的话,则表达式的返回值为1,不等为0。
  4. 如果用char数组来表示字符串,如char a[] = "aaa",b[]="aaa";,则a表示指向字符串的指针,所以a==b实际上还是地址的比较。
#include
#include
using namespace std;
 
int main() {
	char a[] = "aaa",b[]="aaa";
	string A = "AAA", B = "AAA";
	cout <<"*a和*b的值分别是:" <<*a << "," << *b << endl;
	cout <<"*“aaa”的值是:"<< *"aaa" << endl;
	cout <<"利用 == 比较a,b两个字符串,结果是(相等为1,不等为0):" <<(a==b) << endl;
	cout << "利用strcmp()比较a,b两个字符串,结果是(相等为0,不等非0):"<<strcmp(a,b) << endl;
	cout << "利用 == 比较A,B两个string,结果是(相等为1,不等为0):"<<(A==B) << endl;
	cout << "利用compare()比较A,B两个string,结果是(相等为0,不等非0):" << A.compare(B) << endl;
	return 0;
}

结果为:

程序猿c++(11) 字符串比较误区总结
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值