在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