如何在C++中使用String compare()?
时间:2020-02-23 14:30:05 来源:igfitidea点击:
在本文中,我们将重点介绍C++字符串compare()函数及其变体的工作。
C++中的String compare()入门
" C++字符串库"包含用于处理字符串数据和操作字符的大量函数。
C++中的string.compare()以字典方式比较字符串值,即比较可比较字符串的字符的ASCII值。
语法:
string1.compare(string2)
如果字符串完全相同,则compare()函数返回0。
并且,如果字符串不相等,该函数将返回以下值之一:
"值<0":如果string1的第一个不匹配字符的ASCII值小于string2的第一个字符的ASCII值,则该函数返回小于0的值。
"值> 0":如果string1的第一个不匹配字符的ASCII值大于string2的第一个字符的ASCII值,则该函数返回大于0的值。
例:
#include<iostream> using namespace std; int main() { string str1="Python"; string str2="Python with theitroad"; if((str1.compare(str2))==0) cout<<"Strings are equal!!"; else cout<<"Strings are not equal!!"; return 0; }
输出:
Strings are not equal!!
C++中的字符串compare()的变体
C++ String compare()函数可以以不同的形式用于相应地比较字符串。
让我们在以下部分中了解string.compare()函数的不同变体。
变体1:使用索引将字符串的一部分与其他字符串进行比较
在此变体中,我们可以使用以下语法将string1的一部分与string2进行比较:
语法:
string1.compare(start-index, end-length, string2)
start-index:要与string2比较的string1的起始索引。
" end-length":字符串1的长度,字符串1的部分需要与字符串2进行比较。
例:
#include<iostream> using namespace std; int main() { string str1="Python"; string str2="Python with theitroad"; if((str2.compare(0, 6, str1))==0) cout<<"Python with theitroad contains Python"; else cout<<"Python with theitroad does not contain Python"; return 0; }
在以上示例中,将str2的字符从索引0到长度6的部分(即" Python")与str1进行了比较。
输出:
Python with theitroad contains Python
方案2:将字符串与C字符串的字符进行比较
使用string.compare()函数可以使用以下语法将字符串与C字符串格式的字符进行比较:
语法:
string.compare(characters)
例:
#include<iostream> using namespace std; int main() { string str1="Python"; string str2="Python with theitroad"; if((str1.compare("Python")) == 0) cout<<"Strings are equal!\n"; else cout<<"Strings are not equal!"; if((str2.compare("theitroad")) > 0) cout<<"Python with theitroad is greater than theitroad"; else cout<<"Python with theitroad is less than theitroad"; return 0; }
输出:
Strings are equal! Python with theitroad is greater than theitroad
方案3:使用string.compare()函数比较字符串的一部分
string.compare()函数可以帮助我们使用索引比较字符串的各个部分。
语法:
string1.compare(start-index, end-length, string2, start-index, end-length)
例:
#include<iostream> using namespace std; int main() { string str1="Python"; string str2="Python with theitroad"; if((str1.compare(0, 6, str2, 0, 6)==0)) cout<<"Strings are equal!\n"; else cout<<"Strings are not equal!"; return 0; }
输出:
Strings are equal!
变体4:比较字符串的一部分和C字符串
通过使用以下语法指定索引,我们可以将字符串的某些部分与C字符串进行比较:
语法:
string.compare(start-index, end-length,'C-string')
例:
#include<iostream> using namespace std; int main() { string str1="Python"; //string str2="Python with theitroad"; if((str1.compare(0, 6, "Python") == 0)) cout<<"Strings are equal!\n"; else cout<<"Strings are not equal!"; return 0; }
输出:
Strings are equal!
变体5:使用compare()函数将字符串的部分(字符)与C字符串的一部分进行比较
语法:
string.compare(start-index, end-length,'C-string',end-length)
例:
#include<iostream> using namespace std; int main() { string str1="Python"; //string str2="Python with theitroad"; if((str1.compare(0, 6, "Python",6) == 0)) cout<<"Strings are equal!\n"; else cout<<"Strings are not equal!"; return 0; }
输出:
Strings are equal!