用C++编写函数,实现2个字符串按照词典顺序的比较
时间: 2024-02-06 13:12:49 浏览: 20
以下是用C++编写的函数,实现两个字符串按照词典顺序的比较:
```cpp
#include<iostream>
#include<string>
using namespace std;
int compare(string str1, string str2) {
int len1 = str1.length();
int len2 = str2.length();
int min_len = min(len1, len2);
// 按照词典顺序比较两个字符串
for (int i = 0; i < min_len; i++) {
if (str1[i] < str2[i]) {
return -1;
}
else if (str1[i] > str2[i]) {
return 1;
}
}
// 如果前min_len个字符相同,则比较两个字符串的长度
if (len1 < len2) {
return -1;
}
else if (len1 > len2) {
return 1;
}
else {
return 0;
}
}
int main() {
string str1 = "abc";
string str2 = "abcd";
int result = compare(str1, str2);
if (result < 0) {
cout << "str1 < str2" << endl;
}
else if (result > 0) {
cout << "str1 > str2" << endl;
}
else {
cout << "str1 = str2" << endl;
}
return 0;
}
```
在上面的代码中,我们首先获取两个字符串的长度,然后找到两个字符串中长度较小的一个,遍历这个较小的字符串并按照字符的 ASCII 码值进行比较,如果发现两个字符串中某个位置的字符不相同,我们就可以直接返回比较结果了。
如果前 min_len 个字符都相同,我们就需要比较两个字符串的长度,如果字符串长度不同,那么长度较短的字符串就排在前面,否则两个字符串相等。