AC的代码:
#include<stdio.h>
void reverse(char *str,int start,int length);
void replace(char *str1,char *str2,int start,int length);
int main()
{
int n=0;
char s[100];
while(scanf("%s",&s)!=EOF)
{
scanf("%d",&n);
int i,k,st,len;
char com[100],str[100];
for(i=0;i<n;i++)
{
scanf("%s",&com);
k=com[0]-'0'; st=com[1]-'0';len=com[2]-'0';
if(k==0) reverse(s,st,len);
else if (k==1)
{
int j=0,p=0;
for(j=3;com[j]!='\0';j++)
str[p++]=com[j];
replace(s,str,st,len);
}
printf("%s\n",s);
}
}
return 0;
}
void reverse(char *str,int start,int length)
{
int i,j;
char ch;
for (i=start,j=start+length-1;i<j;i++,j--) // 颠倒字符串的新型思想
{
ch=str[i];str[i]=str[j];str[j]=ch;
}
}
void replace(char *str1,char *str2,int start,int length)
{
int i=start,j=0;
for(j=0,i=start;j<length;i++,j++)
{
str1[i]=str2[j];
}
}