记录编号 |
30237 |
评测结果 |
AAAAAAAAAA |
题目名称 |
字符串编辑 |
最终得分 |
100 |
用户昵称 |
Makazeu |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.003 s |
提交时间 |
2011-10-28 13:19:48 |
内存使用 |
0.27 MiB |
显示代码纯文本
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cstdlib>
using namespace std;
char str[500];
unsigned int len;
bool Delete(char s)
{
int loc;
bool flag=false;
for (unsigned int i=0;i<len;i++)
{
if(str[i]==s)
{
loc=i;
flag=true;
break;
}
}
if(!flag)
return false;
for (unsigned int i=loc;i<len;i++)
{
str[i]=str[i+1];
}
len--;
return true;
}
bool Insert(char c,char s)
{
int loc;
bool flag=false;
for (int i=len-1;i>=0;i--)
{
if(str[i]==c)
{
loc=i;
flag=true;
break;
}
}
if(!flag)
return false;
for (int i=len;i>loc;i--)
str[i]=str[i-1];
str[loc]=s;
len++;
return true;
}
bool Replace(char c,char s)
{
bool flag=false;
for (unsigned int i=0;i<len;i++)
{
if(str[i]==c)
{
str[i]=s;
flag=true;
}
}
if(!flag)
return false;
return true;
}
int main()
{
freopen("edit.in","r",stdin);
freopen("edit.out","w",stdout);
memset(str,'\0',sizeof(str));
scanf("%[^\n]",&str);
len=strlen(str);
char a;
char b;
char c;
bool flag;
cin>>a;
if(a=='D')
{
cin>>b;
flag=Delete(b);
//if(flag)
//{
for (unsigned int i=0;i<len;i++)
cout<<str[i];
//}
//else
//cout<<"error"<<endl;
return 0;
}
if(a=='I')
{
cin>>b>>c;
flag=Insert(b,c);
//if(flag)
//{
for (unsigned int i=0;i<len;i++)
cout<<str[i];
//}
//else
// cout<<"error"<<endl;
return 0;
}
if(a=='R')
{
cin>>b>>c;
flag=Replace(b,c);
if(flag)
{
for (unsigned int i=0;i<len;i++)
cout<<str[i];
}
else
cout<<"error"<<endl;
return 0;
}
return 0;
}