C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了C++ string字符串比较方法详解大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
字符串可以和类型相同的字符串相比较,也可以和具有同样字符类型的数组比较。

Basic_String 类模板既提供了  >、<、==、>=、<=、!= 等比较运算符,还提供了 compare() 函数,其中 compare() 函数支持多参数处理,支持用索引值和长度定位子串进行比较。该函数返回一个整数来表示比较结果。如果相比较的两个子串相同,compare() 函数返回 0,否则返回非零值。

compare()函数

类 basic_String 的成员函数 compare() 的原型如下:

int compare (const basic_String& s) const;
int compare (const ch* p) const;
int compare (size_type pos,size_type n,const basic_String& s) const;
int compare (size_type pos,const basic_String& s,size_type pos2,size_type n2) const;
int compare (size_type pos,const ch* p,size_type = npos) const;

如果在使用 compare() 函数时,参数中出现了位置和大小,比较时只能用指定的子串。例如:

s.compare {pos,n,s2);

若参与比较的两个串值相同,则函数返回 0;若字符串 S 按字典顺序要先于 S2,则返回负值;反之,则返回正值。下面举例说明如何使用 String 类的 compare() 函数

【例 1】
#include <iostream>
#include <String>
using namespace std;
int main ()
{
    String A ("aBcdef");
    String B ("AbcdEf");
    String C ("123456");
    String D ("123dfg");
    //下面是各种比较方法
    int m=A.compare (B); //完整的A和B的比较
    int n=A.compare(1,5,B,4,2); //"Bcdef"和"AbcdEf"比较
    int p=A.compare(1,2); //"Bcdef"和"Ef"比较
    int q=C.compare(0,3,D,3); //"123"和"123"比较
    cout << "m = " << m << ",n = " << n <<",p = " << p << ",q = " << q << endl;
    cin.get();
    return 0;
}
程序的执行结果为:

m = 1,n = -1,p = -1,q = 0

由此可知String 类的比较 compare() 函数使用非常方便,而且能区分字母的大小写。建议读者多使用此函数

比较运算符

String 类的常见运算符包括 >、<、==、>=、<=、!=。其意义分别为"大于"、"小于"、"等于"、"大于等于"、"小于等于"、"不等于"。

比较运算符使用起来非常方便,此处不再介绍其函数原型,读者直接使用即可。下面以例 2 进行说明。

【例 2】
#include <iostream>
#include <String>
using namespace std;
void TrueOrfalse (int X)
{
    cout << (x?"True":"false")<<endl;
}

int main ()
{
    String S1 = "DEF";
    String CP1 = "ABC";
    String CP2 = "DEF";
    String CP3 = "DEFG";
    String CP4 ="def";
    cout << "S1= " << S1 << endl;
    cout << "CP1 = " << CP1 <<endl;
    cout << "CP2 = " << CP2 <<endl;
    cout << "CP3 = " << CP3 <<endl;
    cout << "CP4 = " << CP4 <<endl;
    cout << "S1 <= CP1 returned ";
    TrueOrfalse (S1 <=CP1);
    cout << "S1 <= CP2 returned ";
    TrueOrfalse (S1 <= CP2);
    cout << "S1 <= CP3 returned ";
    TrueOrfalse (S1 <= CP3);
    cout << "CP1 <= S1 returned ";
    TrueOrfalse (CP1 <= S1);
    cout << "CP2 <= S1 returned ";
    TrueOrfalse (CP2 <= S1);
    cout << "CP4 <= S1 returned ";
    TrueOrfalse (CP4 <= S1);
    cin.get();
    return 0;
}
程序运行结果为:

S1= DEF
CP1 = ABC
CP2 = DEF
CP3 = DEFG
CP4 = def
S1 <= CP1 returned false
S1 <= CP2 returned True
S1 <= CP3 returned True
CP1 <= S1 returned True
CP2 <= S1 returned True
CP4 <= S1 returned false

由上述内容可知,使用比较运算符可以非常容易地实现字符串的大小比较在使用时比较运算符时,读者应注意,对于参加比较的两个字符串,任一个字符串均不能为 NULL@H_675_43@,否则程序会异常退出

大佬总结

以上是大佬教程为你收集整理的C++ string字符串比较方法详解全部内容,希望文章能够帮你解决C++ string字符串比较方法详解所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: