c++如何比较两个字符串?

1. 判断两个字符串是否相等

如果要判断两个字符串是否相等,可以使用C++中的"=="运算符。例如:

#include <iostream>

#include <string>

using namespace std;

int main() {

string s1 = "hello";

string s2 = "world";

if (s1 == s2) {

cout << "s1 is equal to s2." << endl;

} else {

cout << "s1 is not equal to s2." << endl;

}

return 0;

}

输出结果:

s1 is not equal to s2.

2. 判断两个字符串的大小关系

要判断两个字符串的大小关系,可以使用C++中的compare()函数。该函数返回一个整数,表示字符串之间的大小关系。

2.1 判断字符串是否相等

如果两个字符串相等,compare()函数返回值为0。例如:

#include <iostream>

#include <string>

using namespace std;

int main() {

string s1 = "hello";

string s2 = "hello";

int result = s1.compare(s2);

if (result == 0) {

cout << "s1 is equal to s2." << endl;

} else {

cout << "s1 is not equal to s2." << endl;

}

return 0;

}

输出结果:

s1 is equal to s2.

2.2 判断字符串的大小关系

如果两个字符串不相等,compare()函数会返回一个非零的值,其绝对值表示两个字符串第一个不同字符的ASCII码值的差,符号表示两个字符串的大小关系。例如:

#include <iostream>

#include <string>

using namespace std;

int main() {

string s1 = "hello";

string s2 = "world";

int result = s1.compare(s2);

if (result < 0) {

cout << "s1 is less than s2." << endl;

} else if (result > 0) {

cout << "s1 is greater than s2." << endl;

} else {

cout << "s1 is equal to s2." << endl;

}

return 0;

}

输出结果:

s1 is less than s2.

3. 比较字符串的一部分

如果要比较字符串的一部分,可以使用C++中的compare()函数的另一个重载形式,该形式接受三个参数:要比较的字符串,要比较的字符串的起始位置,要比较的字符串的长度。例如:

#include <iostream>

#include <string>

using namespace std;

int main() {

string str = "hello, world";

string substr = "hello";

int result = str.compare(0, substr.length(), substr);

if (result == 0) {

cout << "substr is equal to the first " << substr.length() << " characters of str." << endl;

} else {

cout << "substr is not equal to the first " << substr.length() << " characters of str." << endl;

}

return 0;

}

输出结果:

substr is equal to the first 5 characters of str.

4. 忽略大小写比较字符串

如果要忽略大小写比较字符串,可以使用C++中的stricmp()函数(Windows环境下)。该函数接受两个参数:要比较的字符串。例如:

#include <iostream>

#include <string>

using namespace std;

int main() {

string s1 = "Hello";

string s2 = "hello";

int result = stricmp(s1.c_str(), s2.c_str());

if (result == 0) {

cout << "s1 is equal to s2." << endl;

} else if (result < 0) {

cout << "s1 is less than s2." << endl;

} else {

cout << "s1 is greater than s2." << endl;

}

return 0;

}

输出结果:

s1 is equal to s2.

5. 总结

本文介绍了C++中比较字符串的几种方法,包括判断字符串是否相等,判断字符串的大小关系,比较字符串的一部分以及忽略大小写比较字符串。对于C++编程者来说,熟练掌握这些方法是非常重要的。

后端开发标签