首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

一个指针有关问题

2012-04-23 
一个指针问题C/C++ codeint del_srubstr(char *str,char const *substr){//char const tempchar *p,*temp

一个指针问题

C/C++ code
int del_srubstr(char *str,char const *substr){    //char const temp;    char *p,*temp;    int n;    p=str;    n=strlen(substr);//为什么我用gdb跟的时候,n的值$1 = 10922    temp=(char *)malloc(n+1);    memset(temp,0x00,n+1);    while(p)    {        memcpy(temp,str,n);        if (strcmp(temp,substr)==0)        {            p+=n;            str=p;            return TRUE;        }    }    return FALSE;}int main(){    char *stra="ABCDEF";    char *strb="XRCQEF";    char *strc="CD";    //char *s;    //s=find_char(stra,strb);    //printf("%c",*s);    del_srubstr(stra,strc);    printf("%s",stra);    return 0;}


[解决办法]
1、strlen那里应该没有问题吧。
2、下面这段代码貌似有问题的说,你到底想实现什么功能?

C/C++ code
while(p)    {        //memcpy(temp,str,n);                     // 应该是这样的吧         memcpy(temp, p, n);        if (strcmp(temp,substr)==0)        {            p+=n;            str=p;            return TRUE;        }        // 添加代码         else        {             ++p;             memset(temp,0x00,n+1);        }    }
[解决办法]
n=strlen(substr);//这条语句没执行前,n的值未知

热点排行