C语言大佬救救我!

P5734 【深基6.例6】文字处理软件

nick360 @ 2024-08-25 23:42:41

只有最后两个点过了,但是样例完全没有问题【哭】

#include<stdio.h>
#include<string.h>

void o1(char a[],char b[]){
    strcat(a,b);
    printf("%s\n",a);
}

void o2(char a[],int aa,int bb){
    char cc[101];
    for(int didi=aa;didi<aa+bb;didi++) cc[didi-aa]=a[didi];
    cc[bb]='\0';
    strcpy(a,cc);
    printf("%s\n",a);
}

void o3(char a[],int t,char b[]){
    char c[101];
    for(int i=0;i<t;i++) c[i]=a[i];
    strcat(c,b);
    for(int jiji=t;jiji<strlen(a);jiji++) c[jiji+strlen(b)]=a[jiji];
    strcpy(a,c);
    printf("%s\n",a);
}

int find(const char a[],const char b[]){
    for(int i=0;i<strlen(a);i++){   
        if(a[i]==b[0]){
            int pd=1;
            for(int ks=i;ks<i+strlen(b);ks++){
                if(a[ks]!=b[ks-i]){
                    pd=0;
                    break;
                }
            }
            if(pd) return i;
        }
    }
    return -1;
}

int main(void){
    int q,opt;
    char a[101];
    scanf("%d\n%s",&q,a);
    for(int times=0;times<q;times++){
        scanf("%d",&opt);
        if(opt==1){
            char b[101];
            scanf("%s",b);
            o1(a,b);
        }
        else if(opt==2){
            int aa,bb;
            scanf("%d %d",&aa,&bb);
            o2(a,aa,bb);
        }
        else if(opt==3){
            int t;
            char b[101];
            scanf("%d",&t);
            scanf("%s",b);
            o3(a,t,b);
        }
        else if(opt==4){
            char b[101];
            scanf("%s",b);
            int ans=find(a,b);
            if(ans==-1) printf("-1\n");
            else printf("%d\n",ans);
        }
    }
    return 0;
}

by Wrong_404error @ 2024-09-18 18:38:29


|