要求定义并调用函数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;
} 展开
输入输出示例:括号内为说明
输入
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;
} 展开
1个回答
展开全部
楼主上大的吗?
你没有将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);
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询