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语言中strcpy()函数与strncpy()函数的使用

    详解C语言中strcpy()函数与strncpy()函数的使用

    这篇文章主要介绍了详解C语言中strcpy()函数与strncpy()函数的使用,是C语言入门学习中的基础知识,需要的朋友可以参考下
    2015-08-08
  • C++中关于委派(Delegates)的实现示例

    C++中关于委派(Delegates)的实现示例

    这篇文章主要介绍了C++中关于委派(Delegates)的实现示例,针对C++11的一些新特性进行讲解,需要的朋友可以参考下
    2015-07-07
  • C++基础 class、struct、union详细

    C++基础 class、struct、union详细

    这篇文章主要 给大家介绍的是C++基础 class、struct、union,主要由三部分组成,分别是、类class、结构体struct、共用体union,需要的朋友可以参考一下
    2021-09-09
  • C++右值引用与move和forward函数的使用详解

    C++右值引用与move和forward函数的使用详解

    为了支持移动操作,新标准引入了一种新的引用类型——右值引用(rvalue reference)。所谓右值引用就是必须绑定到右值的引用,这篇文章主要介绍了C++右值引用与move和forward的使用
    2022-08-08
  • 如何在C语言中判断socket是否已经断开

    如何在C语言中判断socket是否已经断开

    如果不主动关闭socket的话,系统不会自动关闭的,除非当前进程挂掉了,操作系统把占用的socket回收了才会关闭。小编今天跟大家简单介绍下如何在C语言中判断socket是否已经断开
    2019-05-05
  • c++内联函数(inline)使用详解

    c++内联函数(inline)使用详解

    这篇文章主要介绍了c++内联函数(inline)使用详解,需要的朋友可以参考下
    2014-04-04
  • C++中函数模板的用法详细解析

    C++中函数模板的用法详细解析

    所谓函数模板实际上是建立一个通用函数,其涵涵素类型额形参类型不具体指定,用一个虚拟的类型来代表,这个通用函数就称为函数模板
    2013-10-10
  • C++特性:迭代器

    C++特性:迭代器

    这篇文章主要介绍了C++特性:迭代器,本文主要通过介绍迭代器,迭代器和指针的区别,容器迭代器的使用等方面,需要的朋友可以参考下
    2021-06-06
  • C++类型转换运算符详解

    C++类型转换运算符详解

    这篇文章主要介绍了C++类型转换运算符的相关资料,希望通过本文大家能够掌握这部分内容,需要的朋友可以参考下,希望能够给你带来帮助
    2021-10-10
  • C语言枚举的使用以及作用

    C语言枚举的使用以及作用

    这篇文章主要介绍了C语言枚举的使用以及使用,阅读下面内容我们将掌握枚举的相关概念、掌握枚举的几种用法、掌握枚举在实际产品中的用法,需要的朋友可以参考一下
    2022-03-03

最新评论