如何在C ++中使用String compare()?

Hey, folks! In this article, we will be focusing on the working of C++ string compare() function along with its variants.

嘿伙计! 在本文中,我们将重点介绍C ++字符串compare()函数及其变体的工作



C ++中的String compare()入门 (Getting started with String compare() in C++)

C++ String library contains a huge set of functions to work with the string data and manipulate the characters.

C++ String library包含用于处理字符串数据和处理字符的大量函数。

The string.compare() in C++ compares the string values in a lexicographical manner i.e. it compares the ASCII values of the characters of the comparable strings.

string.compare() in C++string.compare() in C++字典方式比较字符串值,即,它比较可比较字符串的字符的ASCII值

Syntax:

句法:


string1.compare(string2)

The compare() function returns 0, if the strings are exactly the same.

如果字符串完全相同,则compare()函数将返回0。

And, if the strings are not equal, the function returns either of the following values:

并且,如果字符串不相等,该函数将返回以下值之一:

  • Value < 0: The function returns a value less than 0 if the ASCII value of the first non-matching character of string1 is less than ASCII value of the first character of string2.

    Value < 0 :如果string1的第一个不匹配字符的ASCII值小于string2的第一个字符的ASCII值,则该函数返回小于0的值。
  • Value > 0: The function returns a value greater than 0 if the ASCII value of the first non-matching character of string1 is greater than ASCII value of the first character of string2.

    Value > 0 :如果string1的第一个不匹配字符的ASCII值大于string2的第一个字符的ASCII值,则该函数返回大于0的值。

Example:

例:


#include<iostream> 
using namespace std; 

int main() 
{ 
	string str1="Python"; 
	string str2="Python with Journaldev"; 
	if((str1.compare(str2))==0)
	    cout<<"Strings are equal!!";
	else
	    cout<<"Strings are not equal!!";
	return 0; 
} 

Output:

输出:


Strings are not equal!!


C ++中的字符串compare()的变体 (Variants of String compare() in C++)

C++ String compare() function can be used in different forms to compare the strings accordingly.

C ++字符串compare()函数可以以不同的形式用于相应地比较字符串。

Let us understand the different variants of the string.compare() function in the below section.

在下面的部分中,让我们了解string.compare() function的不同变体。



变体1:使用索引将字符串的一部分与其他字符串进行比较 (Variant 1: Comparing a portion of a string with the other using indexes)

In this variation, we can compare a portion of string1 with string2 by using the below syntax:

在此变体中,我们可以使用以下语法将string1的一部分与string2进行比较:

Syntax:

句法:


string1.compare(start-index, end-length, string2)
  • start-index: The starting index of the string1 to be compared with string2.

    start-index :要与string2比较的string1的起始索引。
  • end-length: The length of the string1 upto which the portion of string1 needs to be compared with string2.

    end-length :字符串1的长度,字符串1的一部分需要与之比较,字符串2的长度。

Example:

例:


#include<iostream> 
using namespace std; 

int main() 
{ 
	string str1="Python"; 
	string str2="Python with Journaldev"; 
	if((str2.compare(0, 6, str1))==0)
	    cout<<"Python with Journaldev contains Python";
	else
	    cout<<"Python with Journaldev does not contain Python";
	return 0; 
} 

In the above example, the portion of characters of str2 from index 0 to length 6 i.e. ‘Python’ is compared with str1.

在上面的示例中,将str2的字符从索引0到长度6的部分(即“ Python”)与str1进行了比较。

Output:

输出:


Python with Journaldev contains Python


方案2:将字符串与C字符串的字符进行比较 (Variant 2: Comparing the string with the characters of the C-string)

The string.compare() function can be used to compare the string with the characters of the C-string format using the below syntax:

string.compare() function可用于使用以下语法将字符串与C字符串格式的字符进行比较:

Syntax:

句法:


string.compare(characters)

Example:

例:


#include<iostream> 
using namespace std; 

int main() 
{ 
	string str1="Python"; 
	string str2="Python with Journaldev"; 
	if((str1.compare("Python")) == 0)
	    cout<<"Strings are equal!\n";
	else
	    cout<<"Strings are not equal!";
	
	if((str2.compare("Journaldev")) > 0)
	    cout<<"Python with Journaldev is greater than Journaldev";
	else
	    cout<<"Python with Journaldev is less than Journaldev";
	
	return 0; 
} 

Output:

输出:


Strings are equal!
Python with Journaldev is greater than Journaldev


方案3:使用string.compare()函数比较字符串的一部分 (Variant 3: Comparing portion of strings using string.compare() function)

The string.compare() function can help us compare portions of the strings using the indexes.

string.compare()函数可以帮助我们使用索引比较字符串的各个部分。

Syntax:

句法:


string1.compare(start-index, end-length, string2, start-index, end-length)

Example:

例:


#include<iostream> 
using namespace std;

int main() 
{ 
	string str1="Python"; 
	string str2="Python with Journaldev"; 
	if((str1.compare(0, 6, str2, 0, 6)==0))
	    cout<<"Strings are equal!\n";
	else
            cout<<"Strings are not equal!";
	
	return 0; 
} 

Output:

输出:


Strings are equal!


变体4:比较字符串的一部分和C字符串 (Variant 4: Comparing portion of string with C-string)

We can compare some part of the string with the C-string by specifying the index using the below syntax:

通过使用以下语法指定索引,我们可以将字符串的某些部分与C字符串进行比较:

Syntax:

句法:


string.compare(start-index, end-length,'C-string')

Example:

例:


#include<iostream> 
using namespace std; 

int main() 
{ 
	string str1="Python"; 
	//string str2="Python with Journaldev"; 
	if((str1.compare(0, 6, "Python") == 0))
	    cout<<"Strings are equal!\n";
	else
	    cout<<"Strings are not equal!";
	
	return 0; 
} 

Output:

输出:


Strings are equal!


变体5:使用compare()函数将字符串的部分(字符)与C字符串的一部分进行比较 (Variant 5: Comparing portion(characters) of string with a portion of C-string using compare() function)

Syntax:

句法:


string.compare(start-index, end-length,'C-string',end-length)

Example:

例:


#include<iostream> 
using namespace std; 

int main() 
{ 
	string str1="Python"; 
	//string str2="Python with Journaldev"; 
	if((str1.compare(0, 6, "Python",6) == 0))
	    cout<<"Strings are equal!\n";
	else
	    cout<<"Strings are not equal!";
	
	return 0; 
} 

Output:

输出:


Strings are equal!


结论 (Conclusion)

Thus, we have come to the end of the explanation. In this article, we have understood the basic working of string compare() function along with the variations which can be made in the function.

这样,我们就结束了解释。 在本文中,我们了解了字符串compare()函数的基本工作原理以及该函数可以进行的各种变化。



参考资料 (References)

翻译自: https://www.journaldev.com/39952/string-compare-in-c-plus-plus

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值