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;
}