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

相关推荐

走不到的路就这样算了吗:大佬硬气
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
10-12 10:48
已编辑
秋招之苟:邻居家老哥19届双2硕大厂开发offer拿遍了,前几天向他请教秋招,他给我看他当年的简历,0实习实验室项目技术栈跟开发基本不沾边😂,我跟他说这个放在现在中厂简历都过不了
点赞 评论 收藏
分享
评论
点赞
4
分享
牛客网
牛客企业服务