下载测试数据自测时跟标准输出一模一样,但是还是全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");
}