C++如何比较两个字符串或string是否相等strcmp()和compare()

 更新时间:2023年11月22日 10:48:49   作者:TechArtisan6  
这篇文章主要介绍了C++如何比较两个字符串或string是否相等strcmp()和compare()问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

如果要比较的对象是char字符串

则利用函数

strcmp(const char s1,const char s2)

  • 当 str1 < str2 时,返回为负数(-1);
  • 当 str1 == str2 时,返回值= 0;
  • 当 str1 > str2 时,返回正数(1)。

:strcmp(const char s1,const char s2) 这里面只能比较字符串,即可用于比较两个字符串常量,或比较数组和字符串常量,不能比较数字等其他形式的参数。

代码示例

#include<iostream>
#include<string>

using namespace std;

int main()
{

	char str1[10000];
	char str2[10000];

	cout << "两个字符串比较是否相同" << endl;
	cout << "请输入第一个字符串:" << endl;
	cin.get(str1, 10000).get();

	cout << "请输入第二个字符串:" << endl;
	cin.get(str2, 10000).get();
	

	if (strcmp(str1, str2) == 0)
	{
		cout << "您输入的两个字符串相同" << endl;
	}
	else
	{
		cout << "您输入的两个字符串不相同" << endl;
	}


	system("pause");
	return 0;
}

运行结果

如果要比较的对象是两个string

则利用函数 compare()

若要比较string s1和s2则写为:s1.compare(s2),若返回值为0,则两者相等。

  • 当s1 < s2时,返回为负数(-1);
  • 当s1 == s2时,返回值= 0;
  • 当s1 > s2时,返回正数(1)。

代码示例

#include<iostream>
#include<string>

using namespace std;

int main()
{


	char str1[10000];
	char str2[10000];

	string s1;
	string s2;
	cout << "两个字符串比较是否相同" << endl;

	cout << "请输入第一个字符串:" << endl;
	cin.get(str1, 10000).get();

	cout << "请输入第二个字符串:" << endl;
	cin.get(str2, 10000).get();

	s1 = str1;
	s2 = str2;

	if ( (s1.compare(s2)) == 0 )
	{
		cout << "您输入的两个字符串相同" << endl;
	}
	else
	{
		cout << "您输入的两个字符串不相同" << endl;
	}


	system("pause");
	return 0;
}

总结

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

相关文章

  • C语言中储存类别与内存管理的深入理解

    C语言中储存类别与内存管理的深入理解

    这篇文章主要给大家介绍了关于C语言中储存类别与内存管理的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • C语言栈之顺序栈

    C语言栈之顺序栈

    这篇文章主要为大家详细介绍了C语言的顺序栈,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-02-02
  • C++实现LeetCode(17.电话号码的字母组合)

    C++实现LeetCode(17.电话号码的字母组合)

    这篇文章主要介绍了C++实现LeetCode(17.电话号码的字母组合),本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-07-07
  • C语言数据结构时间复杂度及空间复杂度简要分析

    C语言数据结构时间复杂度及空间复杂度简要分析

    我们在进行编程时,往往会开发诸多的算法,那么我们怎么在那么多算法中找到最好的那个呢?本文主要介绍时间和空间复杂度概念及时间复杂度的求解,预祝读者学习愉快
    2021-10-10
  • 浅析string类字符串和C风格字符串之间的区别

    浅析string类字符串和C风格字符串之间的区别

    string类是标准库的类,并不是内置类型,标准库就像是我们自己定义的类差不多的,string类型对象没有标配'\0'结尾的
    2013-09-09
  • 详解Matlab如何绘制小提琴图

    详解Matlab如何绘制小提琴图

    小提琴图 (Violin Plot)是用来展示多组数据的分布状态以及概率密度。这种图表结合了箱形图和密度图的特征,主要用来显示数据的分布形状。本文将介绍如何利用Matlab绘制小提琴图,需要的可以参考一下
    2022-02-02
  • vs2022 qt环境搭建调试的方法步骤

    vs2022 qt环境搭建调试的方法步骤

    最近net6和vs2022发布,本文就详细的介绍一下vs2022 qt环境搭建调试的方法步骤,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-12-12
  • 基于C++中常见内存错误的总结

    基于C++中常见内存错误的总结

    本篇文章是对C++中常见的内存错误进行了总结介绍。需要的朋友参考下
    2013-05-05
  • c语言中使用BF-KMP算法实例

    c语言中使用BF-KMP算法实例

    这篇文章主要介绍了c语言中使用BF-KMP算法,大家参考使用
    2013-11-11
  • C++ opencv图像处理实现图片几何变换示例

    C++ opencv图像处理实现图片几何变换示例

    这篇文章主要为大家介绍了C++ opencv图像处理实现图片几何变换示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05

最新评论