输入一个字符串s,再输入一个字符c,将字符串s中出现的所有字符c删除。要求定义并调用函数delchar(s,c),

【问题描述】删除字符串中的字符。输入一个字符串s,再输入一个字符c,将字符串s中出现的所有字符c删除。要求定义并调用函数delchar(s,c),它的功能是将字符串s中出... 【问题描述】
删除字符串中的字符。输入一个字符串s,再输入一个字符c,将字符串s中出现的所有字符c删除。要求定义并调用函数delchar(s,c),它的功能是将字符串s中出现的所有c字符删除。
【输入形式】
首先打印提示“Input a string:";然后直接在冒号后面输入字符串,字符串中可以包含空格;字符串以回车结束。
打印提示“Input a char:”;然后直接在冒号后面输入一个字符;回车。
【输出形式】
首先打印“After deleted,the string is:”;紧跟后面输出被删除后的字符串剩余内容;换行。
【运行时的输入输出样例】(下划线部分表示输入)
Input a string:happy new year
Input a char:a
After deleted,the string is:hppy new yer
我写的是这样的:
#include<stdio.h>
int main(void)
{
char str[80]={0},a;
char delchar(char *str,char c);

printf("Input a string:");
gets(str);
printf("Input a char:");
scanf("%c",&a);

char delchar(char *str,char a);
printf("After deleted,the string is:");
puts(str);

return 0;
}
char delchar(char *str,char c){
int i,j;
for(i=j=0;str[i]!='\0';i++){
if(str[i]!=c)
str[j++]=str[i];

}

str[j]='\0';
return str;

}
哪错了 ,要怎么该啊?
展开
 我来答
穷比组丶膄dg
2014-05-16 · TA获得超过181个赞
知道答主
回答量:142
采纳率:87%
帮助的人:64.4万
展开全部
#include <stdio.h>

void delchar(char *s,char c)
{
char *p;

for(p=s;*s;s++)
if(*s!=c)
*p++=*s;
*p='\0';
}

void main()
{
char c,s[100];

printf("输入字符串:");
gets(s);
printf("输入要删除的字符:");
scanf("%c",&c);
delchar(s,c);
printf("%s\n",s);
}
追问
for(p=s;*s;s++)
if(*s!=c)
*p++=*s;
*p='\0';
这段能帮我解释一下吗?不是很明白 。谢了!
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式