洛谷ide过了,提交后全re了
查看原帖
洛谷ide过了,提交后全re了
218974
wsadjkl0楼主2021/3/27 16:33

#include<stdio.h>
#include<string.h>
char a[1000]; 
char b[1000]; 
char c[1000]; 
void op1() 
{ 
	int l,i=0; 
    
	l=strlen(a)-1; 
	while(b[i]!='\0') 
	{ 
		a[l]=b[i]; 
		l++;i++; 
	} 
	i=0; 
	while(a[i+1]!='\n'&&a[i+1]!='\0') i++; 
	a[i+1]='\0'; 
	printf("%s\n",a); 
}

void op2(int x,int y) 
{ 
	int i; 
	for(i=0;i<y;i++) b[i]=a[x++]; 
	strcpy(a,b); 
	i=0; 
	while(a[i+1]!='\n'&&a[i+1]!='\0') i++; 
	a[i+1]='\0'; 
	printf("%s\n",a); 
}

void op3(int x) 
{ 
	int n,i,l; 
	i=0; 
	while(a[i+1]!='\n'&&a[i+1]!='\0') i++; 
	a[i+1]='\0'; 
	l=strlen(a); 
	n=strlen(b); 
	for(i=l-1;i>=x;i--) a[i+n]=a[i]; 
	for(i=0;i<n;i++) a[x+i]=b[i];
	printf("%s\n",a); 
}

void op4() 
{ 
	int l,n,i,j; 
	i=0; 
	while(a[i+1]!='\n'&&a[i+1]!='\0') i++; 
	a[i+1]='\0'; 
	n=strlen(a); 
	l=strlen(b)-1; 
	b[l]='\0'; 
	for(i=0;i<=n-l;i++) 
	{ 
		for(j=0;j<l;j++) c[j]=a[i+j]; 
		if(strcmp(c,b)==0) 
		{ printf("%d\n",i); break; } 
	} 
	if(strcmp(c,b)!=0) printf("-1\n"); 
}

int main() 
{ 
	int n,x,i,o,p,j; 
	char space; 
	scanf("%d",&n); fgets(a,101,stdin); memset(a,0,sizeof(a)); fgets(a,101,stdin); 

	i=-1; 
	while(a[i+1]!='\n'&&a[i+1]!='\0') i++; 
	a[i+1]='\0';

	for(i=0;i<n;i++) 
	{ 
		scanf("%d",&x); 
		switch(x) { 
		case 1:

scanf("%c",&space); fgets(b,101,stdin); op1(); break; 
		case 2:

scanf("%d %d",&o,&p); op2(o,p); break; 
		case 3:

scanf("%d",&o); scanf("%c",&space); fgets(b,101,stdin); 
j=0; while(b[j+1]!='\n'&&b[j+1]!='\0') j++; b[j+1]='\0';op3(o); break; 
		case 4: 
			scanf("%c",&space); 
			fgets(b,101,stdin); 
			j=0; while(b[j+1]!='\n'&&b[j+1]!='\0') j++; b[j+1]='\0';op4(); break; 
		default: break; 
		}
	}



return 0; 
}


2021/3/27 16:33
加载中...