C语言,蒟蒻第三个点过不了

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

Oy2006 @ 2024-08-16 22:17:17

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

int main()
{
    int q;
    //q操作次数
    char str1[105],str2[105],str3[105];
    //str1 主字符串,str2 辅助字符串,str3 输入字符串
    scanf("%d\n%s\n",&q,str1);
    int i,j;
    //i用来记录操作序号,j辅助循环 
    for(j=0;j<q;j++)
    {
        scanf("%d\n",&i);
        if(i==1)
        {
            scanf("%s\n",str3);
            strcat(str1,str3);
            printf("%s",str1);
        }
        else if(i==2)
        {
            int a,b,d;
            //截取文档部分,只保留文档中从第a个字符起b个字符
            int n;
            //辅助循环 
            scanf("%d %d",&a,&b);
            for(n=0;n<b;n++)
            {
                str2[n]=str1[a]; 
                a++;
                     }
            strcpy(str1,str2);
            for(d=0;d<n;++d)
            {
                putchar(str1[d]);
             }          
        }
        else if(i==3)
        {
            int a,m;
            //第a个字符前面插入str3
            scanf("%d %s",&a,str3);
            int b,t,c,d=a;
            //b计算str3的长度,t用来辅助循环 
            //c计算str1的长度 
            b=strlen(str3);
            c=strlen(str1); 
            for(t=0;t<c;t++)
            {
                str1[d+b]=str1[d];
                d++;
            }
            for(t=0;t<b;t++)
            {
                str1[a]=str3[t];
                a++;
             }
            for(m=0;m<(b+c);m++)
            {
                putchar(str1[m]);
            }
        }
        else
        {
            int i,a,num=-1;

            scanf("%s",str3);
            for(i=0;i<strlen(str1);i++)
            {
                char str4[105]={0};
                for(a=0;a<strlen(str3);a++)
                {
                    str4[a]=str1[i+a];
                    //printf("str4[%d]=%s\n",a,str4);
                    if(strcmp(str4,str3)==0)
                    {
                        num=i;
                        goto A;
                    }
                }

            }
            A:printf("%d",num);

        }
        printf("\n");
    }
    return 0;
}

|