问一下字符串中删除子串的问题
程序代码:
#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; }
运行显示停止工作什么的= =
刚接触指针不是很会用,是不是我的指针搞错了?