在一个字符串中删除一些字符串指针的有关问题

在一个字符串中删除一些字符串指针的问题
#include "stdafx.h"
#define _MAX_ 256 //字符串最大长度
int delstring(char **target,char *source); //删除字符串的函数
int main()
{
    char *p_target=0;
    char *p_source=0;
    int k=0;
    p_target=new char[_MAX_]; //申请空间
    p_source=new char[_MAX_]; //申请空间
    cout<<"请输入目标串: ";
    cin>>p_target;
    cout<<"请输入删除串: ";
    cin>>p_source;
    cout<<"在\""<<p_target<<"\"内删除\""<<p_source<<endl;
    cout<<"---------------"<<endl;
    if (strlen(p_target)<strlen(p_source))
        cout<<"目标串长度小于替换串!"<<endl;
    else
    {
k=delstring(&p_target,p_source); //删除
        if (k>0) //成功
            cout<<p_target<<endl;
        else
            cout<<"没找到!"<<endl;
    }
delete[] p_target; //释放
delete[] p_source;
p_target=0; //赋空值
p_source=0;
return 0;
}
int delstring(char **target,char *source)
{
    char *p_target=*target;
    char *p_source=source;
    char *p_temp=0;
    char *p_next=0;
    int pos=0;
    p_temp=new char[strlen(*target)]; //申请临时空间
    p_next=p_temp; //保留指针头
    while(strlen(p_target)>=strlen(source))
    {
        if (*p_target==*p_source) //寻找相等串
        {
            for(pos=0;pos<strlen(source);pos++)
            {
                if (*(p_target+pos)!=*p_source)
                    break; //寻找结束
                p_source++; //移动到下一个单元
            }
            //部分相等时,拷贝串
            if (pos<strlen(source))
            {
                for(int i=0;i<pos;i++)
                {
                    *p_next=*(p_target+i);//拷贝数据单元

                    p_next++;
//移动下一个单元
                }