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;
}

总结

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

相关文章

  • SublimeText编译C开发环境设置

    SublimeText编译C开发环境设置

    这篇文章主要介绍了使用SublimeText编译C代码的开发环境设置,大家参考使用
    2013-11-11
  • C++ NFS挂载及挂载命令

    C++ NFS挂载及挂载命令

    这篇文章主要介绍了C++ NFS挂载,文中给大家提到了挂载NFS时常用的命令,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-12-12
  • C++知识点之inline函数、回调函数和普通函数

    C++知识点之inline函数、回调函数和普通函数

    这篇文章主要给大家介绍了关于C++知识点之inline函数、回调函数和普通函数的相关使用方法,以及回调函数和普通函数的区别小结,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2021-07-07
  • C语言位段(位域)机制结构体的特殊实现及解析

    C语言位段(位域)机制结构体的特殊实现及解析

    这篇文章主要为大家介绍了C语言位段位域机制结构体的特殊实现讲解有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步早日升职加薪
    2022-02-02
  • C语言数据结构之双向循环链表的实例

    C语言数据结构之双向循环链表的实例

    这篇文章主要介绍了C语言数据结构之双向循环链表的实例的相关资料,需要的朋友可以参考下
    2017-06-06
  • 最大对称字符串的算法

    最大对称字符串的算法

    题目:输入一个字符串,输出该字符串中对称的子字符串的最大长度。比如输入字符串“google”,由于该字符串里最长的对称子字符串是“goog”,因此输出4。
    2013-03-03
  • C/C++实现快速排序的方法

    C/C++实现快速排序的方法

    这篇文章主要介绍了C/C++实现快速排序的方法,这几天在找工作,被问到快速排序,结果想不出来快速排序怎么弄的;回来搜索了一下,现在记录下来,方便以后查看。
    2014-12-12
  • LeetCode题解C++生成每种字符都是奇数个的字符串

    LeetCode题解C++生成每种字符都是奇数个的字符串

    这篇文章主要为大家介绍了LeetCode题解C++生成每种字符都是奇数个的字符串示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-10-10
  • C++实现LeetCode(148.链表排序)

    C++实现LeetCode(148.链表排序)

    这篇文章主要介绍了C++实现LeetCode(148.链表排序),本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-07-07
  • c++几种基本的插入排序(图文)

    c++几种基本的插入排序(图文)

    这篇文章主要介绍了c++几种基本的插入排序(图文),需要的朋友可以参考下
    2014-11-11

最新评论