c++ 字符串的相等比较(易错)

两种字符串格式char * 或者string 对象
1.如果要比较的对象是char *字符串
利用所在头文件string.h
int  strcmp(const char* s1,const char *s2);
(1)当s1<s2时,返回负数;
(2)当s1==s2时,返回=0;
(2)当s1>s2时,返回正数;
2.若要比较两个字符串对象时两个string,则利用函数compare()或者==
如比较string s1和s2,可写成
s1.compare(s2)
若放回0,则两者相等

3. 注意

(1) 在比较两个字符串时不能利用符号“==”,“==”符号比较的是两个字符串的地址是否相等。
(2) 若是比较两个字符,则可以用”==”直接进行比较~
(3) 但在比较两个string对象时是可以利用“==”的,相等的话,则表达式的返回值为1,不等为0。

#include<iostream>  
#include<string>  
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/C++#
全部评论
char* 表示最好在前面加const,因为这个char*表示的字符串是只读性质
点赞 回复 分享
发布于 2021-08-16 08:55

相关推荐

不愿透露姓名的神秘牛友
02-16 22:33
杉川机器人 嵌入式工程师 18.0k*13.0, 年终奖1~9个月浮动
点赞 评论 收藏
分享
2024-12-29 19:48
河北科技大学 Java
没事就爱看简历:问题不在于简历:1、大学主修课程学那么多应用语言,作为计算机专业是很难理解的。 2、技能部分,每一个技能点的后半句话,说明对熟练,熟悉的标准有明显误会。 3、项目应该是校企合作的练习吧,这个项目你负责什么,取得了哪些成果都没有提及,只是列举了你认为有技术含量的点,而这些都有成熟的实现。
点赞 评论 收藏
分享
lingo12:1.最好加个业务项目,大部分面试官工作以后会更偏重业务 2.实习部分描述一般般,可能hr看到会觉得你产出不够不给你过简历 3.蓝桥杯这些大部分人都有的,不如不写,反而减分项。
点赞 评论 收藏
分享
评论
点赞
4
分享

创作者周榜

更多
牛客网
牛客企业服务