似乎和\r\n有关,但实在不会处理这种情况 代码如下
#include <stdio.h>
#include <string.h>
int main(){
char str[10000], con[100];
char *p;
int n, num0, num1, num2;
int i, j;
scanf("%d\n", &n);
gets(str);
for(i=0;i<n;i++){
scanf("%d ", &num0);
switch(num0){
case 1:
scanf("%s", con);
strcat(str, con);
printf("%s\n", str);
break;
case 2:
scanf("%d%d", &num1, &num2);
for(j=0;j<num2;j++){
str[j] = str[j+num1];
}
for(j=strlen(str);j>=num2;j--){
str[j] = '\0';
}
printf("%s\n", str);
break;
case 3:
scanf("%d ", &num1);
scanf("%s", con);
for(j=strlen(str);j>=num1;j--){
str[j+strlen(con)] = str[j];
}
for(j=num1;j<strlen(con)+num1;j++){
str[j] = con[j-num1];
}
printf("%s\n", str);
break;
case 4:
scanf("%s", con);
p = strstr(str, con);
if(p == NULL){
num1 = -1;
}
else{
num1 = p - str;
}
printf("%d\n", num1);
break;
}
}
return 0;
}