第八周项目3

来源:互联网 发布:淘宝详情图模板 编辑:程序博客网 时间:2024/05/16 00:53
  1. #include<bits/stdc++.h>  
  2. #include"../顺序串算法库/shunxuchuan.h"  
  3. using namespace std;  
  4. void trans(sqstring *&s,char c1,char c2)///将串s中所有值为c1的字符换成值为c2的字符  
  5. {  
  6.     int i;  
  7.     if(s->length>0)///这个没啥好说的  
  8.     {  
  9.         for(i=0;i<s->length;i++)  
  10.             if(s->data[i]==c1)  
  11.                 s->data[i]=c2;  
  12.     }  
  13. }  
  14. void daoguolai(sqstring &s)///OK  
  15. {  
  16.     int i,k;  
  17.     char te;  
  18.     if(s.length>0)  
  19.     {  
  20.         k=s.length-1;  
  21.         for(i=0;i<s.length/2;i++)///就地逆置  
  22.         {  
  23.             te=s.data[i];///经典的写法,设置一个中间变量  
  24.             s.data[i]=s.data[k];  
  25.             s.data[k]=te;  
  26.             k--;  
  27.         }  
  28.     }  
  29. }  
  30. void shanqu(sqstring &s,char c)///OK  
  31. {  
  32.     int i,j,k=0;  
  33.     if(s.length>0)  
  34.     {  
  35.         for(i=0;i<s.length;i++)  
  36.         {  
  37.             if(s.data[i]==c)  
  38.             {  
  39.                 k++;///一开始忘了计数,因为字符串的长度变了  
  40.                 for(j=i;j<s.length;j++)  
  41.                     s.data[j]=s.data[j+1];  
  42.             }  
  43.         }  
  44.     }  
  45.     s.length=s.length-k;  
  46. }  
  47. sqstring gonggong(sqstring s1,sqstring s2)///感觉老师的叙述比较模糊,容易让人产生误解,不知道到底怎么求子串  
  48. {  
  49.     int i,j,k=0;  
  50.     sqstring s3;  
  51.     for(i=0;i<s1.length;i++)  
  52.     {  
  53.         for(j=0;j<s2.length;j++)  
  54.             if(s1.data[i]==s2.data[j])///感觉我这样写更好看呀,当然也有可能是我写错了  
  55.             {  
  56.                 s3.data[k]=s1.data[i];  
  57.                 k++;  
  58.                 break;  
  59.             }  
  60.     }  
  61.     s3.length=k;  
  62.     return s3;  
  63. }  
  64. int main()  
  65. {  
  66.     sqstring s,s1,s2,s3,s4;  
  67.     sqstring *t;  
  68.     char a[100],b[100],c[100];  
  69.     gets(a);  
  70.     jianchuan(s,a);  
  71.     display(s);  
  72.     t=&s;  
  73.     trans(t,'t','d');  
  74.     display(s);  
  75.     daoguolai(s);  
  76.     display(s);  
  77.     shanqu(s,'a');  
  78.     display(s);  
  79.     gets(b);  
  80.     gets(c);  
  81.     jianchuan(s1,b);  
  82.     jianchuan(s2,c);  
  83.     s3=gonggong(s1,s2);  
  84.     display(s3);  
  85.     return 0;  
  86. }  
原创粉丝点击