试定义一个类STR,将一个字符串中指定位置的连续字符拼接到另一个字符串尾部。具体要求如下:(1) 私有数据成员 Ochar *p;存放一个字符串。(2)公有成员函数 • STR(char *s);构造函数。 为数据成员p动态分配内存,并利用参数s初始化数据成员p。 ° void fun(char *s,int nl,int n2),将字符串s 从第n1个字符(从0开始计数)开始的连续n2个字符拼 接到数据成员p所指向的字符串之后,形成一个新的字符串。注意;必须要为p重新分配内存空问。 void print0;按输出示例格式输出数据成员P。•~STR0; 析构函数,释放动态内存。(3)在主西数中完成对该类的测试。输入/输出示例(带下划线部分为键盘输入):字符串1:abcdefg 字符串2:12345678 输入起始 位置和字符个数:25处理后的字符串1 为::abcdefg 34567
时间: 2024-02-22 20:58:05 浏览: 74
以下是定义一个类STR的代码:
```c++
<iostream>
#include <cstring>
using namespace std;
class STR {
private:
char *p;
public:
STR(char *s) { //构造函数
p = new char[strlen(s) + 1];
strcpy(p, s);
}
void fun(char *s, int n1, int n2) { //拼接函数
char *temp = new char[strlen(p) + n2 + 1];
strncpy(temp, p, n1);
strncpy(temp + n1, s, n2);
strcpy(temp + n1 + n2, p + n1);
delete[] p;
p = temp;
}
void print0() { //输出函数
cout << "处理后的字符串1为:" << p << endl;
}
~STR() { //析构函数
delete[] p;
}
};
int main() {
char s1[100], s2[100];
int n1, n2;
cout << "字符串1:";
cin >> s1;
STR str(s1);
cout << "字符串2:";
cin >> s2;
cout << "输入起始位置和字符个数:";
cin >> n1 >> n2;
str.fun(s2, n1, n2);
str.print0();
return 0;
}
```
运行结果示例:
```
字符串1:abcdefg
字符串2:12345678
输入起始位置和字符个数:2 5
处理后的字符串1为:ab34567efg
```
阅读全文
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.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)