c++自定义strcmp
时间: 2023-11-18 22:53:14 浏览: 99
好的,这里是一个简单的自定义strcmp函数的实现:
```c++
int my_strcmp(const char* str1, const char* str2) {
while (*str1 && *str2 && (*str1 == *str2)) {
str1++;
str2++;
}
return *str1 - *str2;
}
```
这个函数会逐个比较两个字符串中的字符,直到遇到不同的字符或者其中一个字符串结束。如果两个字符串完全相同,则返回0;如果第一个字符串比第二个字符串小,则返回负数;如果第一个字符串比第二个字符串大,则返回正数。
相关问题
自定义函数,实现库函数strcmp的功能,要求利用指针实现用c++语言实习
好的,这是一个自定义的strcmp函数的实现,它使用指针来比较两个字符串的值:
```c++
#include <iostream>
using namespace std;
int my_strcmp(const char* str1, const char* str2) {
while(*str1 && (*str1 == *str2)) {
str1++;
str2++;
}
return *(const unsigned char*)str1 - *(const unsigned char*)str2;
}
int main() {
char str1[] = "hello";
char str2[] = "world";
int result = my_strcmp(str1, str2);
cout << "The result is: " << result << endl;
return 0;
}
```
这里定义了一个`my_strcmp`函数,它接受两个参数:`const char* str1`和`const char* str2`,表示需要比较的两个字符串。在函数中,使用while循环和指针来比较两个字符串的值,如果两个字符串的值相等,则继续比较下一个字符,直到其中一个字符串结束或者两个字符串的值不相等为止。最后,返回两个字符串的差值,如果两个字符串相等,则返回0,否则返回它们第一个不同字符的ASCII码值之差。
在main函数中,我们定义了两个字符串,分别是`str1`和`str2`,并调用了`my_strcmp`函数来比较它们的值。最后输出比较结果。
希望这个自定义的strcmp函数能够满足您的要求。
编写C++函数,实现strcmp函数功能
在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)或零(两者相等)。
阅读全文