#include
#include
int main (void)
{
char str[1001]={0}; //输入原始字符串
char c[10] ,ch[101]; //一个收录操作方式 另一个收录改变的字符串
char cv[3][10]={"reverse","print","replace"};
int n=0,a=0,b=0; //n表示进行操作次数 ab为位数
scanf("%s",str); //收录
getchar();
scanf("%d",&n);
getchar();
while(n--){
scanf("%s",c);
if(!strcmp(c,cv[0])){
scanf("%d %d",&a,&b);
getchar();
int d=(a+b)/2;
while(a<=d){
char temp=str[a];
str[a]=str[b];
str[b]=temp;
a++;
b--;
}
}
else if(!strcmp(c,cv[1])){
scanf("%d %d",&a,&b);
getchar();
for(int k=a;k<=b;k++){
printf("%c",str[k]);
}
printf("\n");
}
else if(!strcmp(c,cv[2])){
scanf("%d %d %s",&a,&b,ch);
getchar();
for(int m=0;m1;m++){
str[a+m]=ch[m];
}
}
}
return 0;
}
请问这个代码只有一个测试点没有通过吗?
可是我看只有print命令进行了字符串输出,另外两个reverse和replace都没有输出,这个没问题吗?
还有reverse和replace的操作都是直接对原始字符串str进行操作,这样后面的命令会叠加,而不是独立的命令,输出应该也会有问题