请问,本题为什么为WA
查看原帖
请问,本题为什么为WA
531511
leyouyuan楼主2024/8/31 23:47
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cstdlib>

char command [110];
char Data [110];


void add(char *cmd,char *data)
{
    while(*data != '\0')
    {
        data ++;
    }
    strcpy(data,cmd);
}

void str_del(int n,int k,char *data)
{
    char *tmp_data = new char [110];
    strcpy(tmp_data,data+n);
    tmp_data [k] = '\0';
    strcpy(data,tmp_data);
    delete tmp_data;
}

void del(char *rest_command,char *data)
{
    int n,k;
    sscanf(rest_command,"%d %d",&n,&k);
    str_del(n,k,data);
}

void str_insert(int a,char *cmd,char *data)
{
    strcpy(data+a,cmd);
}

void insert(char *rest_command,char *data)
{
    int a;
    char *tmp_data = new char [110];
    sscanf(rest_command,"%d %s",&a,tmp_data);
    str_insert(a,tmp_data,data);
    delete tmp_data;
}

int seek(char *rest_command,char *data)
{
    char *p = strstr(data,rest_command);
    if(p==NULL)
    {
        return -1;
    }
    return p - data;
}

void process(int mode,char *rest_command,char *data)
{
    switch(mode)
    {
        case 1:
        add(rest_command,data);
        break;
        case 2:
        del(rest_command,data);
        case 3:
        insert(rest_command,data);
        case 4:
        std::cout<<seek(rest_command,data)<<std::endl;
        break;
        default:
        std::cout<<data<<std::endl;
    }
}

int main(int argc,char **argv)
{
    int q;
    scanf("%d\n",&q);
    int mode;
    scanf("%s\n",Data);
    for(int i = 1;i<=q;i++)
    {
        scanf("%s\n",command);
        sscanf(command,"%d ",&mode);
        process(mode,command+2,Data);
    }
    return 0;
}

代码如上。不知道为什么。

2024/8/31 23:47
加载中...