c++string字符串的比较是否相等问题

 更新时间:2023年08月09日 09:09:05   作者:25zhixun  
这篇文章主要介绍了c++string字符串的比较是否相等问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

c++string字符串的比较是否相等

最近遇到一个点,在c++中和Java很不一样,就是Java中string的比较必须是str1.equal(str2),如果采用str1==str2,则是永真式(记不清到底永真还是永假来着)。

而在c++中,似乎并没有equal这个方法,string的比较也很简单,直接通过str1==str2比较即可。

详见下方示例

#include <iostream>
#include <string>
using namespace std;
int main()
{
    if("abc"=="abc")
    {
        cout<<"abc等于abc"<<endl;
    }
    else
    {
        cout<<"abc不等于abc"<<endl;
    }
    if("abc"=="ab")
    {
        cout<<"abc等于ab"<<endl;
    }
    else
    {
        cout<<"abc不等于ab"<<endl;
    }
    string str1="abc",str2="abc",str3="ab";
    if(str1==str2)
    {
        cout<<str1<<"等于"<<str2<<endl;
    }
    else
    {
        cout<<str1<<"不等于"<<str2<<endl;
    }
    if(str1==str3)
    {
        cout<<str1<<"等于"<<str3<<endl;
    }
    else
    {
        cout<<str1<<"不等于"<<str3<<endl;
    }
    return 0;
}

c++判断两个字符串是否相等

#include <iostream>
#include <string>
#include <string.h>
using namespace std;
int main()
{
    string str1 = "abc", str2 = "abc";
    if ( strcmp( str1.c_str(), str2.c_str() ) == 0 )
        cout << "Yes" << endl;
    else
        cout << "No" << endl;
    return 0;
}
#include <string>
#include <string.h>
#include <iostream>
using namespace std;
string t1 = "helloWorld";
string t2 = "helloWorld";
int main(){
    if (t1 == t2)
    {
        cout<<"***t1 ,t2 是一样的\n";
        cout<<"这是正确的\n";
    }
    // error
    if (t1.c_str() == t2.c_str())
    {
        cout<<"@@@t1 ,t2 是一样的\n";
    }
    // error
    if (t1.c_str() == "helloWorld")
    {
        cout<<"===t1 ,t2 是一样的\n";
    }
    if (strcmp(t1.c_str(),t2.c_str()) == 0)
    {
        cout<<"###t1 ,t2 是一样的\n";
        cout<<"这是正确的\n";
    }
    return 0;
}

输出:

***t1 ,t2 是一样的
这是正确的
###t1 ,t2 是一样的
这是正确的

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 详解C++11 变参模板

    详解C++11 变参模板

    这篇文章主要介绍了C++11 变参模板的相关资料,帮助大家更好的理解和学习c++11,感兴趣的朋友可以了解下
    2020-08-08
  • linux之sort命令的用法

    linux之sort命令的用法

    sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出
    2013-10-10
  • 详解C++中变量的初始化规则

    详解C++中变量的初始化规则

    这篇文章详细介绍了关于C++中变量的初始化规则,C++如果不对变量初始化,可能会导致很多后果,所以学习C++变量初始化规则就很重要了,下面一起来看看
    2016-08-08
  • C语言中读取时间日期的基本方法

    C语言中读取时间日期的基本方法

    这篇文章主要介绍了C语言中读取时间日期的基本方法,分别是time()函数和gmtime()函数的使用,注意返回值的区别,需要的朋友可以参考下
    2015-08-08
  • 高效实现整型数字转字符串int2str的方法

    高效实现整型数字转字符串int2str的方法

    下面小编就为大家带来一篇高效实现整型数字转字符串int2str的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-03-03
  • MFC命名规则汇总

    MFC命名规则汇总

    这篇文章主要介绍了MFC命名规则,对于初学者而言需要牢固掌握这类规则,需要的朋友可以参考下
    2014-07-07
  • C++11新特性之右值引用与完美转发详解

    C++11新特性之右值引用与完美转发详解

    C++11标准为C++引入右值引用语法的同时,还解决了一个短板,即使用简单的方式即可在函数模板中实现参数的完美转发。本文就来讲讲二者的应用,需要的可以参考一下
    2022-09-09
  • 二分查找算法在C/C++程序中的应用示例

    二分查找算法在C/C++程序中的应用示例

    这篇文章主要介绍了二分查找算法在C/C++程序中的使用示例,文中最后提到了使用二分查找法一个需要注意的地方,需要的朋友可以参考下
    2016-03-03
  • QT实现视频传输功能

    QT实现视频传输功能

    这篇文章主要为大家详细介绍了QT实现视频传输功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-08-08
  • C语言实现栈及栈的详解

    C语言实现栈及栈的详解

    这篇文章主要介绍了C语言实现栈及栈的详解,一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作,进行数据插入和删除操作的一端称为栈顶,另一端称为栈底,需要的朋友可以参考下
    2023-07-07

最新评论