问一下字符串中删除子串的问题
程序代码:#include<stdio.h>
#include <string.h>
int main(){
char str[80],sub_str[80],del_str[80];
gets(str);//主列
gets(sub_str);//子列
char*p=str;
char*q=strstr(str,sub_str);//q指向子列第一次出现的位置
int i=0,m;
int len_str=strlen(str),len_sub_str=strlen(sub_str);//计算主列子列长度
//printf("%d",q-p);
while(p!=NULL){//当子列存在时
for(i=0;i<q-p;i++){
del_str[i]=str[i]; //子列前的部分不变,赋值给del_str
}
for(i=q-p+len_sub_str,m=q-p;str[i]!='\0';m++,i++){
del_str[m]=str[i];//将子列之后的继续赋值给del_str
}
q=strstr(q+1,sub_str);//寻找下一个子列
}
printf("%s",del_str);
return 0;
}
运行显示停止工作什么的= =
刚接触指针不是很会用,是不是我的指针搞错了?




