荒天帝


私信TA

用户名:ljhabc

访问量:4035

签 名:

等  级
排  名 433
经  验 4895
参赛次数 1
文章发表 126
年  龄 0
在职情况 学生
学  校
专  业

  自我简介:

解题思路:

注意事项:

参考代码:

#include<bits/stdc++.h>

using namespace std;

int main()

{

    char s[50];

    char order,c1,c2;

    cin.getline(s,41,'.'); //输入字符以.结束,但是字符串中不包括.

    int pos=-1;  //标志

    int len=strlen(s);     

    s[len]='.';  //把.放到字符串中作为最后一个字符

    s[++len]='\0'; //字符串的结束标志

    cin>>order;    //输入命令

    if(order=='D')  //删除操作

    {

        cin>>c1;  //输入要删除的字符

        for(int i=0;s[i];i++)   //删除操作

            if(s[i]==c1)   //找到则删除它

            {

                pos=1;

                for(int j=i;s[j];j++) //前移一个位置,覆盖即可删除。

                    s[j]=s[j+1];

                break;

            }

    }

    else if(order=='I') //插入操作

    {

        cin>>c1>>c2;  //其中c1表示插入到指定字符前面,c2表示将要插入的字符

        for(int i=0;s[i];i++) //找插入位置,若原串中有多个,则插入在最后一个字符的前面

            if(s[i]==c1) pos=i;

        if(pos!=-1)  //找到了插入位置

        {

            for(int i=len;i>=pos;i--) //后移一个位置,腾出位置插入

                s[i+1]=s[i];

            s[pos]=c2;

        }

    }

    else if(order=='R') //替换操作

    {

        cin>>c1>>c2; //其中c1为被替换的字符,c2为替换的字符

        for(int i=0;s[i];i++)

            if(s[i]==c1)  //找到则替换,注意时全部替换

            {

                pos=1;

                s[i]=c2;

            }

    }

    if(pos==-1) //操作不成功

        cout<<"no exist";

    else   //操作成功,则输出新字符串

        puts(s);

    return 0;

}


 

0.0分

0 人评分

  评论区

  • «
  • »