社区讨论

全对但0分呜呜呜

P5734【深基6.例6】文字处理软件参与者 3已保存回复 3

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
3 条
当前快照
1 份
快照标识符
@lyskly9m
此快照首次捕获于
2024/07/19 18:41
2 年前
此快照最后确认于
2024/07/19 20:23
2 年前
查看原帖
CPP
#include<bits/stdc++.h>
using namespace std;
char str[5000];
int q;
int main(){
	freopen("1.in","r",stdin);
	freopen("1.out","w",stdout); 
	scanf("%d",&q);
	scanf("%s",str);
	int len=strlen(str);
	for(int i=1;i<=q;i++){
		int a;
		scanf("%d",&a);
		if(a==1){
			char str2[100005];
			scanf("%s",str2);
			int len2=strlen(str2);
			for(int i=len;i<len+len2;i++) str[i]=str2[i-len];
			len+=len2;
			printf("%s\n",str);
			continue;
		}
		else if(a==2){
			int a1,a2;
			scanf("%d%d",&a1,&a2);
			for(int i=0;i<a2;i++) str[i]=str[i+a1];
			len=a2;
			str[len]='\0';
			printf("%s\n",str);
			continue;
		}
		else if(a==3){
			int a1;
			char str2[10005];
			scanf("%d%s",&a1,str2);
			strcat(str2,&str[a1]);
			str[a1]='\0';
			strcat(str,str2);
			printf("%s\n",str);
			continue;
		}
		else if(a==4){
			bool sum=0,sum2=0;
			char str2[10005];
			scanf("%d",str2);
			for(int i=0;i<len;i++){
				if(str[i]!=str2[0]) continue;
				for(int j=i,k=0;j<strlen(str2),k<strlen(str2);k++,j++){
					if(str[j]=str2[k]) continue;
					else{
						sum=1;
						break;
					}
				}
				if(sum==1) continue;
				else{
					printf("%d\n",i);
					sum2=1;
					break;	
				} 
			}
			if(sum2==0) printf("-1\n");
		}
	}
	return 0;
} 

回复

3 条回复,欢迎继续交流。

正在加载回复...