请问测试点1数据一模一样,为什么全wa
查看原帖
请问测试点1数据一模一样,为什么全wa
1628439
ppppppp1111楼主2025/1/20 18:55
#include<stdio.h>
#include<string.h>
int Find(char* string,char * str){
	int i=0,j=0;
	//printf("aaaaaaaaaaaaaaaaaaaaaaaaa%dlllll",strlen(string));
	while(i<strlen(string)&&j<strlen(str)){
		if(*(str+j)==*(string+i)){
			i++;
			j++;
		}else{
			j=0;
			i=i-j+1;
		}
		//printf("\ni=%d j=%d\n",i,j);
	}
	if(j==strlen(str)){
			//printf("aaaaaaaaaaaaaaaaaaaaaaaaa");
     	return i-j;
	}
    else 
        return -1;
}
int main(){
	int q, l;
	char string[200];
	scanf("%d",&q);
	getchar();
	fgets(string,101,stdin);
    char *find = strchr(string, '\n');          //查找换行符
    if(find)                            //如果find不为空指针
        *find = '\0';   
	for(int i=0;i<q;i++){
		char op[50];
		fgets(op,50,stdin);
		//printf("-----\n");
		//printf("%s\n",string);
		//printf("%ld",strlen(string));
		//printf("-----\n");
		if(op[0]=='1'){
			strcat(string,op+2);
			char *find = strchr(string,'\n');          //查找换行符
            if(find)                            //如果find不为空指针
                *find = '\0'; 
			//getchar();
			printf("%s",string);
			if(i<q-1){
				printf("\n");
			}
			//printf("%ld",strlen(string));
		}else if(op[0]=='2'){
			char str1[3],str2[3];
			int len;
			sscanf(op+2,"%[^ ]",str1);//
			len=strlen(str1);
			sscanf(op+3+len,"%[^\n]",str2);
			//printf("%s %s",str1,str2);
			int num1=atoi(str1);
			int num2=atoi(str2);
			strcpy(string,string+num1);
			string[num2]='\0';
			printf("%s",string);
			if(i<q-1){
				printf("\n");
			}
		}else if(op[0]=='3'){
			char str1[3],str2[20];
			sscanf(op+2,"%[^ ]",str1);//
			int len,l;
			l=strlen(str1);
			sscanf(op+3+l,"%[^\n]",str2);
				//printf("11111111%s\n",str2);
			len=strlen(str2);
			//printf("%s %s",str1,str2);
			int num1=atoi(str1);
			char strtmp[101];
			strcpy(strtmp,string+num1);
			
			strcpy(string+num1,str2);
		
			strcpy(string+len+num1,strtmp);
			printf("%s",string);
			if(i<q-1){
				printf("\n");
			}
		}else{
			char str[101];
			strcpy(str,op+2);
			char *find = strchr(str,'\n');          //查找换行符
            if(find)                            //如果find不为空指针
                *find = '\0'; 
			//printf("aaaaaaaaaaaaaaaaaaaaaaaaa%dlllll",strlen(str));
			int index=Find(string,str);
		    printf("%d",index);
		    if(i<q-1){
				printf("\n");
			}
		}
		//printf("%s\n",string);
	}
	return 0;
}

2025/1/20 18:55
加载中...