从键盘输入一个字符串(长度<=40个字符),并以字符’.‘结束。
例如:‘This is a book.’ 现对该字符串进行编辑,编辑功能有:
D:删除一个字符,命令的方式为:
D a 其中a为被删除的字符
例如:D s 表示删除字符’s’,若字符串中有多个 ‘s’,则删除第一次出现的。
如上例中删除的结果为: ‘Thi is a book.’
I:插入一个字符,命令的格式为:
I a1 a2 其中a1表示插入到指定字符前面,a2表示将要插入的字符。
例如:I s d 表示在指定字符’s’的前面插入字符’d’&,若原串中有多个’s’,则插入在最后一个字符的前面。
如上例中:原串:‘This is a book.’
插入后:‘This ids a book.’
R:替换一个字符,命令格式为:
R a1 a2 其中a1为被替换的字符,a2为替换的字符,若在原串中有多个a1则应全部替换。
例如:
原串:‘This is a book.’
输入命令:R o e
在编辑过程中,若出现被改的字符不存在时,则给出提示信息"Not exist"。
#include<iostream>
#include<stdio.h>
#include<string.h>
using namespace std;
void D(string s,int n)
{
char sc;
cin>>sc;
int t=0;
for(int i=0; i<n; i++)
{
if(s[i]==sc)break;
t++;
}
for(int i=t; i<n-1; i++)
{
s[i]=s[i+1];
}
for(int i=0; i<n-1; i++)
{
cout<<s[i];
}
}
void I(string s,int n)
{
char a1,a2;
cin>>a1>>a2;
int t=n;
for(int i=n; i>0; i--)
{
if(s[i]==a1)break;
t--;
}
for(int i=0; i<t; i++)
{
cout<<s[i];
}
cout<<a2;
for(int i=t; i<n; i++)
{
cout<<s[i];
}
}
void R(string s,int n)
{
char a1,a2;
cin>>a1>>a2;
int flat=0;
for(int i=0; i<n; i++)
{
if(s[i]==a1)
{
s[i]=a2;
flat=1;
}
else
{
continue;
}
}
if(flat==1)
{
for(int i=0; i<n; i++)
{
cout<<s[i];
}
}
else
{
printf("Not exist");
}
}
int main()
{
string s;
getline(cin,s);
int n=s.length();
char ml;
cin>>ml;
if(ml=='D')
{
D(s,n);
}
if(ml=='I')
{
I(s,n);
}
if(ml=='R')
{
R(s,n);
}
}