结果是对的,但结果排序整不了,求助(C语言)
查看原帖
结果是对的,但结果排序整不了,求助(C语言)
1380808
Oy2006楼主2024/8/16 18:08
#include<stdio.h>
#include<string.h>

int main()
{
	int q;
	//q操作次数
	char str1[105],str2[105],str3[105];
	//str1 主字符串,str2 辅助字符串,str3 输入字符串
	scanf("%d\n%s\n",&q,str1);
	int i,j;
	//i用来记录操作序号,j辅助循环 
	for(j=0;j<q;j++)
	{
		scanf("%d\n",&i);
		if(i==1)
		{
			scanf("%s\n",str3);
			strcat(str1,str3);
			printf("%s",str1);
		}
		else if(i==2)
		{
			int a,b;
			//截取文档部分,只保留文档中从第a个字符起b个字符
			int n;
			//辅助循环 
			scanf("%d %d",&a,&b);
			for(n=0;n<b;n++)
			{
				str2[n]=str1[a]; 
				a++;
					 }
			strcpy(str1,str2);
			printf("%s",str1);		 
		}
		else if(i==3)
		{
			int a;
			//第a个字符前面插入str3
			scanf("%d %s",&a,str3);
			int b,t,c,d=a;
			//b计算str3的长度,t用来辅助循环 
			//c计算str1的长度 
			b=strlen(str3);
			c=strlen(str1); 
			for(t=0;t<c;t++)
			{
				str1[d+b]=str1[d];
				d++;
			}
			for(t=0;t<b;t++)
			{
				str1[a]=str3[t];
				a++;
			 }
			printf("%s",str1);
		}
		else
		{
			int i,a,num=-1;
			
			scanf("%s",str3);
			for(i=0;i<strlen(str1);i++)
			{
			    char str4[105]={0};
				for(a=0;a<strlen(str3);a++)
				{
					str4[a]=str1[i+a];
					//printf("str4[%d]=%s\n",a,str4);
					if(strcmp(str4,str3)==0)
					{
						num=i;
						goto A;
					}
				}
				
			}
			A:printf("%d",num);
			
		}
		printf("\n");
	}
	return 0;
}
2024/8/16 18:08
加载中...