用C++编写函数,实现2个字符串按照词典顺序的比较,已知一部分函数如下#include <iostream> using namespace std; int stringcmp(char *s1, char *s2); int main() { char *str1, *str2; str1=new char[81]; str2=new char[81]; cin.getline(str1,80); cin.getline(str2,80); int cmp=stringcmp(str1, str2); cout<<cmp; delete []str1; delete []str2; return 0; }
时间: 2024-01-10 19:01:55 浏览: 122
以下是用C++编写的函数,实现两个字符串按照词典顺序的比较,同时包含给定的 stringcmp 函数:
```cpp
#include <iostream>
using namespace std;
int stringcmp(char *s1, char *s2) {
int i = 0;
while (s1[i] != '\0' && s2[i] != '\0') {
if (s1[i] < s2[i]) {
return -1;
}
else if (s1[i] > s2[i]) {
return 1;
}
i++;
}
if (s1[i] == '\0' && s2[i] == '\0') {
return 0;
}
else if (s1[i] == '\0') {
return -1;
}
else {
return 1;
}
}
int main() {
char *str1, *str2;
str1 = new char[81];
str2 = new char[81];
cin.getline(str1, 80);
cin.getline(str2, 80);
int cmp = stringcmp(str1, str2);
cout << cmp;
delete[] str1;
delete[] str2;
return 0;
}
```
在上面的代码中,我们首先定义了一个 stringcmp 函数,该函数与前面的函数实现类似,只是接收的参数类型由 std::string 变为了 char*。
在主函数中,我们首先定义了两个 char* 类型的指针 str1 和 str2,然后分别使用 new 运算符分配了 81 个字节的内存空间,用于存储两个字符串。
接下来,我们使用 cin.getline 函数从标准输入中读取两个字符串,并调用 stringcmp 函数比较它们的大小,最后输出比较结果。
最后,我们使用 delete[] 运算符释放 str1 和 str2 指向的内存空间,避免内存泄漏。
阅读全文