设计一个简单的字符串类String,包含输入字符串、返回字符串内容及长度等功能; 设计一个具有编辑功能的字符串类EditableString,它继承自String类,支持在指定位置插入、删除、替换字符的功能。 输入 假设程序中默认自带一个字符串,内容为"1234567890",位置计数从1开始; 插入指令形如:i 1 a,表示操作为插入(insert),插入的位置为第1位,插入的字符为a; 删除指令形如:d 2,表示操作为删除(delete),删除的位置为第2位; 替换指令形如:r 6 b,表示操作
时间: 2023-12-10 15:41:15 浏览: 28
为替换(replace),替换的位置为第6位,替换成的字符为b。
以下是实现这两个类的示例代码:
```
class String {
private:
std::string content;
public:
String(std::string str) : content(str) {}
std::string get_content() const {
return content;
}
int get_length() const {
return content.length();
}
};
class EditableString : public String {
public:
EditableString(std::string str) : String(str) {}
void insert(int position, char ch) {
if (position < 1 || position > get_length() + 1) {
std::cout << "Invalid position for insertion." << std::endl;
return;
}
content.insert(position - 1, 1, ch);
}
void remove(int position) {
if (position < 1 || position > get_length()) {
std::cout << "Invalid position for deletion." << std::endl;
return;
}
content.erase(position - 1, 1);
}
void replace(int position, char ch) {
if (position < 1 || position > get_length()) {
std::cout << "Invalid position for replacement." << std::endl;
return;
}
content.replace(position - 1, 1, 1, ch);
}
};
```
使用示例:
```
EditableString str("1234567890");
std::cout << str.get_content() << std::endl; // Output: 1234567890
std::cout << str.get_length() << std::endl; // Output: 10
str.insert(1, 'a');
std::cout << str.get_content() << std::endl; // Output: a1234567890
str.remove(2);
std::cout << str.get_content() << std::endl; // Output: a234567890
str.replace(6, 'b');
std::cout << str.get_content() << std::endl; // Output: a2345b7890
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)