删除字符窜中特定字符窜的函数
#include<stdio.h>int del_substr(char *str,char *substr);
void main()
{
char *p="abfsdstrsf";
char *q="str";
del_substr(p,q);
for(;*p;p++)
printf("%c",*p);
printf("\n");
}
int del_substr(char *str,char *substr)
{
char* head=substr;
char* end; //标记源字符窜中紧接着目标字符窜的最后一位置
int flag=0;
while(*str++&&*head)
{
for(head=substr;*head;head++,str++)
{
if(*head==*(str-1))
{
flag=1;
end=str-1;
continue;
}
else
{
flag=0;
break;
}
}
}
if(!flag)
return 0;
else
{
str=end+1;
while(*substr++) //让str指向和substr相同的第一个字符的位置
str--;
while(*str=*end++) //断点时到这就出错了
*str='\0';
return 1;
}
}
出错:内存不能为written,想知道哪里错了。