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-01 12:05
复旦大学 Java
腾讯的提前批大概率应该是没有笔试的,但是这个时候有相当部分的同学简历估计都没有准备好,没准备好的同学也不用急,大部分都是3月之后开,这个时候开的绝大多数都是神仙打架,问的东西也比较难,打算投递的同学也多看下计算机网络和操作系统,腾讯对这部分的知识问的比较多。另外多刷下牛客的热门题库,刷题注意刷ACM模式,和牛客的周赛题,腾讯有的部门会从这里面出原题。我是@程序员花海关注我,带你了解更多校招资讯!
程序员花海:还没有来得及准备的同学可以看下学习路线:https://www.nowcoder.com/discuss/824693499982315520?sourceSSR=users算法题:https://www.nowcoder.com/feed/main/detail/20e7a999fa04485b88340a274411ca0d?sourceSSR=users八股文:https://www.nowcoder.com/discuss/833102362771251200?sourceSSR=users简历书写方式:https://www.nowcoder.com/discuss/839907820706205696?sourceSSR=users都是以前在牛客发的文章~
AI求职实录
点赞 评论 收藏
分享
2025-12-26 00:57
门头沟学院 golang
菜菜_带带:作弊的前提是你得有真东西,不然很容易就备看出来了,至于混进去,都是面试造火箭,工作拧螺丝罢了
点赞 评论 收藏
分享
评论
点赞
4
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务