求大佬救命
查看原帖
求大佬救命
414510
cjl2580楼主2020/12/7 23:54

下载测试数据自测时跟标准输出一模一样,但是还是全WA,蒟蒻求解

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

void one(char *str,char *c1);
void tow(char *str,int num1,int num2);
void three(char *str,int num3,char *c1);
void four(char *str,char *c1);

int main()
{
    int n,num1,num2,num3;
    char str[1000];
    char ch[100],c1[100];
    //freopen("C:\\Users\\86156\\Documents\\cs.txt","r",stdin);
    scanf("%d\n",&n);
    gets(str);
    for(int i=0; i<n; i++)
    {
     gets(ch);
        switch(ch[0])
        {
            case '1':sscanf(ch,"%*d%*c%s",c1);one(str,c1);break; //后接插入
            case '2':sscanf(ch,"%*d%*c%d%*c%d",&num1,&num2);tow(str,num1,num2);break; //截取部分文本
            case '3':sscanf(ch,"%*d%*c%d%*c%s",&num3,c1);three(str,num3,c1);break; //插入字符串
            case '4':sscanf(ch,"%*d%*c%s",c1);four(str,c1);break; //查找字符串位置
        }
        if(i!=n-1) printf("\n"); //换行
    }
    return 0;
}

void one(char *str,char *c1) //后接插入
{
    sprintf(str,"%s%s",str,c1);
    printf("%s",str);
}
void tow(char *str,int num1,int num2)//截取部分文本
{
    int j=0;
    for(int i=num1;;i++)
    {
        str[j++]=str[i];
        if(j>=num2) break;
    }
    str[j]='\0';
    printf("%s",str);
}
void three(char *str,int num3,char *c1) //插入字符串
{
    int j=0;
    char temp[100];
    for(int i=0;i<num3;i++)
        temp[j++]=str[i];
    for(int i=0;c1[i]!='\0';i++)
        temp[j++]=c1[i];
    for(int i=num3;str[i]!='\0';i++)
        temp[j++]=str[i];
    temp[j]='\0';
    sprintf(str,"%s",temp);
    printf("%s",str);
}
void four(char *str,char *c1) //查找字符串位置
{
    int i,j=0,len;
    len=strlen(c1);
    for(i=0;str[i]!='\0';i++){
        int ii=i;
        if(str[ii++]==c1[j++]){
            while(len>1){
                if(str[ii++]!=c1[j++]) break;
                len--;
            }
            if(len==1) {printf("%d",i);break;}
        }
    }
    if(str[i]=='\0') printf("-1");
}
2020/12/7 23:54
加载中...