【QSBOJ】字符串编辑

题目链接:https://bbs.csdn.net/topics/390289884?page=1

AC代码:

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 
 4 int main(void)
 5 {
 6     int i;
 7     char a[42];
 8     for(i=0;a[i-1]!='.';i++)
 9         a[i] = getchar();
    //这里的a[i-1]体会一下,是上一个为‘.’时才停止读入,因为最后输出结果含'.'
10 a[i]=''; 11 int len=strlen(a);
    //strlrn(a)测字符数组长度,有几个元素就是几
    //sizeof(a)测字符数组的字节长度,一个int是4,double 8, char 1 memset(a,0,sizeof(a))这里用的是字节数
    //对象.length测string类型的长度
12 char c; 13 cin>>c; 14 getchar();
    //一般乱码的问题时由于输入函数多读入空格导致,把空格吃掉
15 16 if(c=='I') 17 { 18 char m,n; 19 cin>>m>>n; 20 int t=0; 21 for(i=len-1;i>=0;i--) 22 { 23 if(a[i]==m) 24 { 25 int j; 26 for(j=len-1;j>=i;j--) 27 a[j+1]=a[j]; 28 a[i]=n; 29 a[len+1]=''; 30 t++; 31 break; 32 } 33 } 34 if(t==0) 35 { 36 cout<<"Not exist"<<endl; 37 return 0; 38 } 39 } 40 41 else if(c=='D') 42 { 43 char p; 44 cin>>p; 45 int t=0; 46 for(i=0;i<=len-1;i++) 47 { 48 if(a[i]==p) 49 { 50 for(int k=i;k<len-1;k++) 51 a[k]=a[k+1]; 52 t++; 53 a[len-1]=''; 54 break; 55 } 56 } 57 if(t==0) 58 { 59 cout<<"Not exist"<<endl; 60 return 0; 61 } 62 } 63 64 else if(c=='R') 65 { 66 char q,r; 67 int t=0; 68 cin>>q>>r; 69 for(i=0;i<len;i++) 70 { 71 if(a[i]==q) 72 { 73 a[i]=r; 74 t++; 75 } 76 } 77 if(t==0) 78 { 79 cout<<"Not exist"<<endl; 80 return 0; 81 } 82 } 83 84 puts(a);      
    //puts终止条件时读到''
85 86 return 0; 87 }
原文地址:https://www.cnblogs.com/DuWA/p/11530315.html