要求定义并调用函数delchar(str,c), 它的功能是将字符串 str 中出现的所有 c 字符删除

函数形参str的类型是字符指针,形参c的类型是char,函数类型是void,,形参c的类型是char,函数类型是void。输入输出示例:括号内为说明输入3(repeat=... 函数形参str的类型是字符指针,形参c的类型是char,函数类型是void,,形参c的类型是char,函数类型是void。
输入输出示例:括号内为说明
输入
3 (repeat=3)
happy new year (字符串"happy new year")
a (待删除的字符'a')
bee (字符串"bee")
e (待删除的字符'e')
111211 (字符串"111211")
1 (待删除的字符'1')
输出
result: hppy new yer (字符串"happy new year"中的字符'a'都被删除)
result: b (字符串"bee"中的字符'e'都被删除)
result: 2 (字符串"111211"中的字符'1'都被删除)

然后这是我的函数,不知道哪里出错了
void delchar(char *str, char c){
int i,j;
char *p;
i=j=0;
while(*(str+i)!=0){
if(*(str+i)!=c){
*(p+j)=*(str+i);
j++;
}
i++;
}
*(p+j)=0;

}
展开
 我来答
hnshhslsh
2014-05-28 · TA获得超过106个赞
知道小有建树答主
回答量:206
采纳率:0%
帮助的人:123万
展开全部

楼主上大的吗?

你没有将p指针赋值,p现在是一个野指针,当然不行

而且你这么做没有改变str的内容

void delchar(char *str, char c)
{
    int i,j;
    char p[100];
    i=j=0;
    while(*(str+i)!=0)
    {
        if(*(str+i)!=c)
        {
            *(p+j)=*(str+i);
            j++;
        }
        i++;
    }
    *(p+j)=0;
    for(i = 0;*(p+i)!=0;++i)
        *(str+i) = *(p+i);
    *(str+i) = *(p+i);
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式