使用string类,编写一个简单的文本编辑程序,实现基本的插入,删除,查找,替换等功能。这一题的代码怎么写?
时间: 2023-06-07 09:08:28 浏览: 94
string类.doc 的一个文档 string的函数和使用
为了方便起见,这里提供一个C++的示例代码,实现基本的文本编辑功能,可以实现字符串的插入、删除、查找、替换等操作。
```
#include <iostream>
#include <string>
using namespace std;
int main() {
string text; // 定义一个字符串,用来表示文本内容
int choice; // 定义一个整数,用来表示用户的选择
string sub; // 定义一个字符串,用来表示查找或替换的子串
string replace; // 定义一个字符串,用来表示替换后的新串
// 初始化文本内容
text = "Hello, world! This is a simple text editor.";
// 不断循环,直到用户选择退出
while (true) {
// 显示菜单,让用户选择操作
cout << "==========================" << endl;
cout << "1. 插入文本" << endl;
cout << "2. 删除文本" << endl;
cout << "3. 查找文本" << endl;
cout << "4. 替换文本" << endl;
cout << "5. 显示文本" << endl;
cout << "0. 退出" << endl;
cout << "==========================" << endl;
cout << "请输入您的选择:";
cin >> choice;
// 根据用户的选择执行相应的操作
switch (choice) {
case 0:
// 退出程序
cout << "谢谢使用!" << endl;
return 0;
case 1:
// 插入文本
int pos;
cout << "请输入要插入的位置:";
cin >> pos;
cout << "请输入要插入的文本:";
cin >> sub;
text.insert(pos, sub);
break;
case 2:
// 删除文本
int start, len;
cout << "请输入要删除的起始位置:";
cin >> start;
cout << "请输入要删除的长度:";
cin >> len;
text.erase(start, len);
break;
case 3:
// 查找文本
cout << "请输入要查找的文本:";
cin >> sub;
if (text.find(sub) == string::npos) {
cout << "未找到指定文本!" << endl;
} else {
cout << "文本出现在位置 " << text.find(sub) << endl;
}
break;
case 4:
// 替换文本
cout << "请输入要替换的文本:";
cin >> sub;
cout << "请输入要替换成的新文本:";
cin >> replace;
int pos = text.find(sub);
if (pos == string::npos) {
cout << "未找到指定文本!" << endl;
} else {
text.replace(pos, sub.length(), replace);
}
break;
case 5:
// 显示文本
cout << "当前文本内容为:" << endl;
cout << text << endl;
break;
default:
cout << "无效的选择!" << endl;
break;
}
}
return 0;
}
```
注意:本示例代码为了方便起见,没有进行充分的错误处理,实际使用时需要根据具体情况进行进一步完善。另外,可以根据需要添加其他的编辑功能,比如撤销、保存等。
阅读全文