Fancy Mouse
- -|||
字符串处理。注意一下什么时候输出error什么时候对原字符串不进行修改
#include<iostream>
using namespace std;

const int MAX = 40;
void Delete(char s[],char a);
void Insert(char s[],char a,char b);
void Replace(char s[],char a,char b);
int main()
{
    
int data;
    
char s[MAX],cmd,a,b;
    cin
>>data;
    
while(data-- > 0)
    
{
        cin.getline(s,MAX);
        cin.getline(s,MAX);
        cin
>>cmd>>a;
        
switch(cmd)
        
{
        
case 'R':
            cin
>>b;
            Replace(s,a,b);
            
break;
        
case 'D':
            Delete(s,a);
            
break;
        
case 'I':
            cin
>>b;
            Insert(s,a,b);
            
break;
        }

    }

    
return 0;
}

void Delete(char s[],char a)
{
    
int Pos,nPos;
    
for(Pos=0;s[Pos]!='\0';Pos++);
    
for(nPos=0;s[nPos]!=&& nPos<Pos;nPos++);
    
if(Pos==nPos) cout<<"error"<<endl;
    
else
    
{
        
for(;nPos<Pos;nPos++) s[nPos]=s[nPos+1];
        s[nPos]
='\0';
        cout
<<s<<endl;
    }

}

void Insert(char s[],char a,char b)
{
    
int aPos,Pos;
    
for(aPos=-1,Pos=0;s[Pos]!='\0';Pos++)
        
if(s[Pos]==a) aPos=Pos;
    
if(-1==aPos) cout<<"error"<<endl;
    
else
    
{
        
for(s[Pos+1]='\0';Pos>aPos;Pos--)
            s[Pos]
=s[Pos-1];
        s[aPos]
=b;
        cout
<<s<<endl;
    }

}

void Replace(char s[],char a,char b)
{
    
int Pos;
    
for(Pos=0;s[Pos]!='\0';Pos++)
        
if(s[Pos]==a) s[Pos]=b;
    cout
<<s<<endl;
}
posted on 2005-08-27 13:25  Fancy Mouse  阅读(365)  评论(1编辑  收藏  举报