关于c++类字符串管理的一个小程序

来源:互联网 发布:一元云购java源码下载 编辑:程序博客网 时间:2024/05/17 23:08
/*(1)在定义对象时,能够为字符串清空;(2)定义变换构造函数,能够为字符串赋以给定的字符串;(3)定义复制构造函数;(4)定义成员函数,能够为字符串输入数据;(5)定义成员函数,能够将字符串显示出来;(6)定义成员函数,用于找出每个字符串的最小值及其个数,最小值由函数值返回,个数由参数带回;(7)定义成员函数,用于为字符串按从小到大顺序排序。(8)定义main函数,合理地调用上述每个函数。*/#include<iostream>#include<string>using namespace std;class m_string{public:m_string();m_string(string s[10]);m_string(const m_string &s);void print();void setdata();~m_string();char* mindata(int num[]);void InsertSort();private:string data[10];};char ch[10];m_string::m_string(){for(int i = 0; i < 10; i++){data[i] = "";}}m_string::m_string(const m_string &s){for(int i = 0; i < 10; i++){data[i] = s.data[i];}}m_string::m_string(string s[10]){for(int i = 0; i < 10; i++){data[i] = s[i];}}void m_string::print(){cout << "数据如下:" << endl;for(int i = 0; i < 10; i++){cout << data[i] << endl;}cout << endl;}void m_string::setdata(){cout << "请输入数据:" << endl;for(int i = 0; i < 10; i++){cin >> data[i];}}char* m_string::mindata(int num[]){for(int i = 0; i < 10; i++){ch[i] = data[i][0];num[i] = 0;for(int j = 0; data[i][j] != '\0'; j++){if(data[i][j] < ch[i]){ch[i] = data[i][j];num[i] = 0;}if(data[i][j] == ch[i])num[i]++;}}return ch;}void m_string::InsertSort(){int i = 9;  //初始时,最后位置保持不变  while(i> 0){int pos = 0; //每趟开始时,无记录交换  for(int j = 0; j< i; j++)if(data[j]>data[j + 1]){pos = j; //记录交换的位置   string tmp = data[j]; data[j] = data[j + 1]; data[j + 1] = tmp;}i = pos; //为下一趟排序作准备  }}m_string::~m_string(){}int main(){string a[10] = { "a12","b22","c23","d33","a35","c55","e66","t45","f75","g88" };int count[10];m_string s1;cout << "s1";s1.print();m_string s3(a);cout << "s3";s3.print();m_string s2(s3);cout << "s2";s2.print();s1.setdata();char *ch = s1.mindata(count);cout << "最小值依次为:" << ch << endl;cout << "对应个数为:  ";for(int i = 0;i < 10;i++)cout << count[i];cout << endl;s2.InsertSort();
s2.print();return 0;}/*1232154965462545552468852558795453325482215526875588456984686598898986878987879*/

原创粉丝点击