设计字符串类CSTRING,包含私有成员数据p(char *p)。 程序功能:首先读入n个字符串;然后对n个字符串按照升序排列;最后输出排序后的结果。 main函数已给定,提交时只需要提交main函数外的代码部分。 #include<iostream> #include<cstring> using namespace std; //你提交的代码在这里 int main() { int n,i,j; cin>>n; CSTRING t,*cs=new CSTRING[n]; for(i=0;i<n;i++) cin>>cs[i]; for(i=0;i<n-1;i++) for(j=0;j<n-i-1;j++) if(cs[j]>cs[j+1]) { t=cs[j]; cs[j]=cs[j+1]; cs[j+1]=t; } for(i=0;i<n;i++) cout<<"("<<i+1<<") "<<cs[i]<<endl; delete[] cs; return 0; } Input 第1行为1个正整数n,表示字符串的个数n; 第2行包含n个字符串,相互之间用空格隔开。 Output 输出n个字符串排序后的结果,具体格式详见样例。输入5 ccccc bbbbbb rrrrr aaaaaaaa ddddd输出(1) aaaaaaaa (2) bbbbbb (3) ccccc (4) ddddd (5) rrrrr请补充完整代码
时间: 2024-03-26 21:36:15 浏览: 114
c++设计实现一个"字符串类",要求系统设计具有一定弹性和可扩展性,使得后续维护和扩展功能更容易,增加或修改系统功能变得更简单。
5星 · 资源好评率100%
```
#include<iostream>
#include<cstring>
using namespace std;
class CSTRING {
private:
char *p;
public:
CSTRING() {p = NULL;}
// 重载输入运算符
friend istream& operator>>(istream& is, CSTRING& str) {
char tmp[100];
is >> tmp;
if (str.p != NULL) {
delete[] str.p;
}
str.p = new char[strlen(tmp) + 1];
strcpy(str.p, tmp);
return is;
}
// 重载比较运算符
friend bool operator>(CSTRING& str1, CSTRING& str2) {
return strcmp(str1.p, str2.p) > 0;
}
// 重载输出运算符
friend ostream& operator<<(ostream& os, CSTRING& str) {
os << str.p;
return os;
}
~CSTRING() {
if (p != NULL) {
delete[] p;
}
}
};
int main() {
int n,i,j;
cin >> n;
CSTRING t,*cs = new CSTRING[n];
for (i = 0; i < n; i++) {
cin >> cs[i];
}
for (i = 0; i < n - 1; i++) {
for (j = 0; j < n - i - 1; j++) {
if (cs[j] > cs[j + 1]) {
t = cs[j];
cs[j] = cs[j + 1];
cs[j + 1] = t;
}
}
}
for (i = 0; i < n; i++) {
cout << "(" << i + 1 << ") " << cs[i] << endl;
}
delete[] cs;
return 0;
}
```
阅读全文