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

【问题描述】
删除字符串中的字符。输入一个字符串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;

}
哪错了 ,要怎么该啊?

#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';
这段能帮我解释一下吗?不是很明白 。谢了!

温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网