试编写一个函数,实现在顺序存储方式下字符串的strcompare(S1,S2)运算。
时间: 2024-12-15 10:14:13 浏览: 6
c语言 数据结构实现之字符串
在顺序存储方式下,我们通常会将字符串视为字符数组,然后通过遍历比较每个字符来实现字符串的比较。下面是一个简单的 C++ 函数示例,用于计算两个字符串 S1 和 S2 的字典序比较:
```cpp
#include <string>
int strCompare(const std::string& S1, const std::string& S2) {
int len1 = S1.length();
int len2 = S2.length();
// 如果长度不同,则短的字符串肯定排在前面
if (len1 != len2)
return len1 < len2 ? -1 : 1;
// 否则逐个字符比较,直到找到第一个不同字符的位置
for (size_t i = 0; i < len1; ++i) {
if (S1[i] != S2[i])
return S1[i] - S2[i]; // 返回ASCII码差值
}
// 长度相等且所有字符都相同,它们相等
return 0;
}
// 示例:
std::string s1 = "hello";
std::string s2 = "hello world";
int result = strCompare(s1, s2);
if (result > 0)
std::cout << "s1 排在 s2 之后" << std::endl;
else if (result < 0)
std::cout << "s1 排在 s2 之前" << std::endl;
else
std++.cout << "s1 等于 s2" << std::endl;
阅读全文