在C++中比较字符串的3种方法

时间:2020-02-23 14:29:54  来源:igfitidea点击:

在本教程中,我们将学习在C++中比较字符串的方法。
考虑一种方案,其中要求您输入名称和密码才能登录到特定。
在这种情况下,在后端,我们需要构建和编写脚本函数,以检查输入字符串(登录详细信息)并将其与数据库中存储的字符串进行比较。

因此,在本文中与此相关的将是理解在C++语言中比较字符串的方法。

在C++中比较字符串的技术

可以使用以下两种技术来比较C++中的字符串:

  • 字符串strcmp()函数
  • 内置compare()函数
  • C++关系运算符(==!=)

1. C++中的字符串strcmp()函数

C++ String具有内置函数来处理和处理字符串类型的数据。
为了比较两个字符串,我们可以使用String的strcmp()函数。

strcmp()函数是一个C库函数,用于按字典顺序比较两个字符串。

语法:

int strcmp ( const char * str1, const char * str2 );

  • 如果两个字符串相等或者相同,则该函数返回0。

  • 输入字符串必须是C样式字符串的char数组。

  • strcmp()也以区分大小写的形式比较字符串。

范例1:

#include<iostream>
using namespace std;
#include<string.h>
int main() {
 const char *str_inp1="theitroad";
 const char *str_inp2="theitroad";
 
cout<<"String 1:"<<str_inp1<<endl;
cout<<"String 2:"<<str_inp2<<endl;

	if (strcmp(str_inp1, str_inp2) == 0)
		cout << "\nBoth the input strings are equal." << endl;
	else
		cout << "The input strings are not equal.";
 
}

输出:

String 1:theitroad
String 2:theitroad
The input strings are not equal.

范例2:

#include<iostream>
using namespace std;
#include<string.h>
int main() {
 const char *str_inp1="Python";
 const char *str_inp2="Python";
 
cout<<"String 1:"<<str_inp1<<endl;
cout<<"String 2:"<<str_inp2<<endl;

	if (strcmp(str_inp1, str_inp2) == 0)
		cout << "\nBoth the input strings are equal." << endl;
	else
		cout << "The input strings are not equal.";
 
}

输出:

String 1:Python
String 2:Python

Both the input strings are equal.

2. C++中的compare()函数

C++具有内置的compare()函数,以便高效地比较两个字符串。

compare()函数比较两个字符串,并根据匹配情况返回以下值:

  • 如果两个字符串相同,则返回0。

  • 如果第一个字符串的字符值小于第二个字符串输入的字符,则返回<0。

  • 当第二个字符串比较大时,结果为> 0。

语法:

int compare (const string& string-name) const;

范例1:

#include<iostream>
using namespace std;

int main() {
 string str_inp1("Python");
 string str_inp2("Python");
 
cout<<"String 1:"<<str_inp1<<endl;
cout<<"String 2:"<<str_inp2<<endl;
int res = str_inp1.compare(str_inp2);

	if (res == 0)
		cout << "\nBoth the input strings are equal." << endl;
	else if(res < 0)
		cout << "String 1 is smaller as compared to String 2\n.";
		else
		cout<<"String 1 is greater as compared to String 2\n.";
}

在上面的示例中,我们将字符串1与字符串2进行了比较。
可以清楚地看到,两个字符串在字典上都相同,返回0。

输出:

String 1:Python
String 2:Python

Both the input strings are equal.

范例2:

#include<iostream>
using namespace std;

int main() {
 string str_inp1("Python");
 string str_inp2("theitroad");
 
cout<<"String 1:"<<str_inp1<<endl;

	if (str_inp1.compare("Python") == 0)
		cout << "Strings are equal." << endl;
	else
		cout<<"Strings are not Equal\n.";
		
	
cout<<"\nString 2:"<<str_inp2<<endl;	
	if (str_inp2.compare("theitroad") == 0)
		cout << "Strings are equal." << endl;
	else
		cout<<"Strings are not Equal.\n";	
 
}

在上面的代码片段中,我们将一个字符串和另一个输入字符串直接比较到compare()函数。

输出:

String 1:Python
Strings are equal.

String 2:theitroad
Strings are not Equal.

3. C++中的关系运算符

C++关系运算符(例如" =="和"!=")可以轻松地比较字符串。

语法:

string1 == string 2
OR
string1 != string2

示例1:使用C++的" =="运算符

#include<iostream>
using namespace std;

int main() {
 string str_inp1;
 string str_inp2;
 
 cout<<"Enter the String 1:\n";
 cin>>str_inp1;
 cout<<"Enter the String 2:\n";
 cin>>str_inp2;
 

  if (str_inp1 == str_inp2) 
      cout <<"Strings are equal"<<endl; 
  else
      cout <<"Strings are not equal"<< endl; 
  
      
}

输出:

Enter the String 1:
Python
Enter the String 2:
PythoN
Strings are not equal

示例2:使用C++的"!="运算符

#include<iostream>
using namespace std;

int main() {
 string str_inp1;
 string str_inp2;
 
 cout<<"Enter the String 1:\n";
 cin>>str_inp1;
 cout<<"Enter the String 2:\n";
 cin>>str_inp2;
 

  if (str_inp1 != str_inp2) 
      cout <<"Strings are not equal"<<endl; 
  else
      cout <<"Strings are equal"<< endl; 
  
}

输出:

Enter the String 1:
Python
Enter the String 2:
Python
Strings are equal