C语言大佬救救我!
查看原帖
C语言大佬救救我!
638110
nick360楼主2024/8/25 23:42

只有最后两个点过了,但是样例完全没有问题【哭】

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

void o1(char a[],char b[]){
	strcat(a,b);
	printf("%s\n",a);
}

void o2(char a[],int aa,int bb){
	char cc[101];
	for(int didi=aa;didi<aa+bb;didi++) cc[didi-aa]=a[didi];
	cc[bb]='\0';
	strcpy(a,cc);
	printf("%s\n",a);
}

void o3(char a[],int t,char b[]){
	char c[101];
	for(int i=0;i<t;i++) c[i]=a[i];
	strcat(c,b);
	for(int jiji=t;jiji<strlen(a);jiji++) c[jiji+strlen(b)]=a[jiji];
	strcpy(a,c);
	printf("%s\n",a);
}

int find(const char a[],const char b[]){
	for(int i=0;i<strlen(a);i++){	
		if(a[i]==b[0]){
			int pd=1;
			for(int ks=i;ks<i+strlen(b);ks++){
				if(a[ks]!=b[ks-i]){
					pd=0;
					break;
				}
			}
			if(pd) return i;
		}
	}
	return -1;
}

int main(void){
	int q,opt;
	char a[101];
	scanf("%d\n%s",&q,a);
	for(int times=0;times<q;times++){
		scanf("%d",&opt);
		if(opt==1){
			char b[101];
			scanf("%s",b);
			o1(a,b);
		}
		else if(opt==2){
			int aa,bb;
			scanf("%d %d",&aa,&bb);
			o2(a,aa,bb);
		}
		else if(opt==3){
			int t;
			char b[101];
			scanf("%d",&t);
			scanf("%s",b);
			o3(a,t,b);
		}
		else if(opt==4){
			char b[101];
			scanf("%s",b);
			int ans=find(a,b);
			if(ans==-1) printf("-1\n");
			else printf("%d\n",ans);
		}
	}
	return 0;
}
2024/8/25 23:42
加载中...