用一个指针函数实现两个字符串的比较,即自己写一个strcmp函数,输出最大的那个数
时间: 2024-02-29 07:52:48 浏览: 68
好的,我来实现一个指针函数的strcmp函数。
```c++
char* my_strcmp(const char* str1, const char* str2) {
int len1 = strlen(str1);
int len2 = strlen(str2);
int min_len = (len1 < len2 ? len1 : len2);
for (int i = 0; i < min_len; i++) {
if (str1[i] > str2[i]) {
return const_cast<char*>(str1);
}
else if (str1[i] < str2[i]) {
return const_cast<char*>(str2);
}
}
return const_cast<char*>(len1 > len2 ? str1 : str2);
}
```
使用方法:
```c++
#include <iostream>
#include <cstring>
using namespace std;
int main() {
char str1[] = "hello";
char str2[] = "world";
cout << my_strcmp(str1, str2) << endl; // 输出 "world"
return 0;
}
```
如果需要比较的是数字,可以将字符串转换为数字再比较,修改如下:
```c++
char* my_strcmp(const char* str1, const char* str2) {
int num1 = atoi(str1);
int num2 = atoi(str2);
if (num1 > num2) {
return const_cast<char*>(str1);
}
else {
return const_cast<char*>(str2);
}
}
```
使用方法:
```c++
#include <iostream>
#include <cstring>
using namespace std;
int main() {
char str1[] = "123";
char str2[] = "456";
cout << my_strcmp(str1, str2) << endl; // 输出 "456"
return 0;
}
```
阅读全文