建立一个字符串类strtype实现字符串的连接和字符串的比较
时间: 2024-04-30 19:20:05 浏览: 221
实现字符串比较
下面是一个示例的strtype类,实现了字符串的连接和比较功能。
```c++
#include <iostream>
#include <cstring>
using namespace std;
class strtype {
private:
char* str; // 字符串存储
public:
strtype(const char* s = "") { // 构造函数
str = new char[strlen(s) + 1];
strcpy(str, s);
}
~strtype() { delete[] str; } // 析构函数
void display() const { cout << str << endl; } // 输出字符串
void concat(const strtype& s2) { // 字符串连接
char* temp = new char[strlen(str) + strlen(s2.str) + 1];
strcpy(temp, str);
strcat(temp, s2.str);
delete[] str;
str = temp;
}
int compare(const strtype& s2) const { // 字符串比较
return strcmp(str, s2.str);
}
};
int main() {
strtype s1("Hello"), s2("World");
s1.display(); // 输出 Hello
s2.display(); // 输出 World
s1.concat(s2);
s1.display(); // 输出 HelloWorld
cout << s1.compare(s2) << endl; // 输出一个负数(s1 小于 s2)
return 0;
}
```
在这个示例中,我们定义了一个strtype类,它包含了一个私有成员变量`str`,代表字符串的存储。类中定义了一个构造函数、一个析构函数、一个输出字符串的函数`display`、一个字符串连接的函数`concat`以及一个字符串比较的函数`compare`。其中,字符串连接函数`concat`使用了动态内存分配,实现了两个字符串的连接,并将结果存储在调用函数的对象中。字符串比较函数`compare`使用了标准库函数`strcmp`,返回两个字符串的字典序差值。
在主函数中,我们定义了两个`strtype`对象`s1`和`s2`,并调用了它们的`display`函数输出。接着,我们调用了`s1`的`concat`函数,将`s2`连接到了`s1`的后面,并输出了结果。最后,我们调用了`s1`的`compare`函数,比较了`s1`和`s2`的大小关系,并输出了结果。
阅读全文