设计一个简单的字符串类String,包含输入字符串、返回字符串内容及长度等功能; 设计一个具有编辑功能的字符串类EditableString,它继承自String类,支持在指定位置插入、删除、替换字符的功能。 输入 假设程序中默认自带一个字符串,内容为"1234567890",位置计数从1开始; 插入指令形如:i 1 a,表示操作为插入(insert),插入的位置为第1位,插入的字符为a; 删除指令形如:d 2,表示操作为删除(delete),删除的位置为第2位; 替换指令形如:r 6 b,表示操作
时间: 2023-12-03 15:45:27 浏览: 39
为替换(replace),替换的位置为第6位,替换的字符为b。以下是代码实现示例:
```
class String {
public:
String(const std::string& str) : content(str) {}
std::string getContent() const { return content; }
int getLength() const { return content.length(); }
protected:
std::string content;
};
class EditableString : public String {
public:
EditableString(const std::string& str) : String(str) {}
void insert(int pos, char ch) { content.insert(pos - 1, 1, ch); }
void remove(int pos) { content.erase(pos - 1, 1); }
void replace(int pos, char ch) { content.replace(pos - 1, 1, 1, ch); }
};
int main() {
EditableString str("1234567890");
std::cout << str.getContent() << std::endl; // 1234567890
std::cout << str.getLength() << std::endl; // 10
str.insert(1, 'a');
std::cout << str.getContent() << std::endl; // a1234567890
str.remove(2);
std::cout << str.getContent() << std::endl; // a234567890
str.replace(6, 'b');
std::cout << str.getContent() << std::endl; // a23456b90
return 0;
}
```