编写C++函数,实现strcmp函数功能
时间: 2024-09-11 12:02:32 浏览: 76
在C++中,你可以创建一个名为`my_strcmp`的自定义函数,效仿标准库中的`std::strcmp`函数的功能,比较两个字符串是否相等。`std::strcmp`通常用于C语言,但在C++中也可以作为参考实现。这里是一个简单的例子:
```cpp
#include <string>
#include <cctype> // 包含tolower函数用于忽略大小写
int my_strcmp(const std::string& str1, const std::string& str2) {
int lengthDiff = str1.length() - str2.length();
// 如果长度不同,则直接返回差值
if (lengthDiff != 0)
return lengthDiff;
// 遍历字符串,逐字符对比,忽略大小写
for (size_t i = 0; i < str1.length(); ++i) {
if (tolower(str1[i]) != tolower(str2[i])) { // 使用tolower转换并比较字符
return str1[i] < str2[i] ? -1 : 1; // 返回字符顺序差异
}
}
// 字符串完全相等
return 0;
}
```
这个函数首先检查两个字符串的长度,如果长度不同则直接返回长度之差。然后逐个字符对比,如果找到不匹配的字符,按ASCII码排序返回负数(str1小于str2)、正数(str1大于str2)或零(两者相等)。
阅读全文