麻烦高手帮忙编写一个一个如下要求的C语言程序,编写的挤出一些,C语言入门新手能看懂的,谢谢。

鞋面给出的函数del()其功能是从字符串S中删除指定字符ch,请将函数体补充完整voiddel(char*s,charch){}能够对使用的变量正确定义1分能够使用循环对... 鞋面给出的函数del()其功能是从字符串S中删除指定字符ch,请将函数体补充完整
void del(char *s,char ch)
{

}
能够对使用的变量正确定义1分
能够使用循环对整个字符串进行处理3分
能够使用if语句判断要删除的字符2分
能够在新生辰的字符串末未添加串结束符2分
程序没有其他逻辑或者语法错误2分
展开
 我来答
ww17241
2018-12-29 · 超过15用户采纳过TA的回答
知道答主
回答量:42
采纳率:50%
帮助的人:14万
展开全部

用指针来解决

#include<stdio.h>

void del(char *,char);

int main()

{

char s[100];

char ch;

printf("输入字符串");

scanf("%s",s);

fflush(stdin);

printf("输入要删除的字符   ");

scanf("%c",&ch);

del(s,ch);

puts(s);

}

void del(char *s,char ch)

{

char *k; //用于删除元素的时候替代s

while(*s) //当s为字符串结束符时结束

{

if(*s==ch)

for(k=s;*k!='\0';k++)//发现相同字符后面的元素集体前移覆盖

*k=*(k+1);

s++;

}

}

运行结果为

cylz0703
2018-12-29 · TA获得超过3.4万个赞
知道大有可为答主
回答量:1.8万
采纳率:83%
帮助的人:4394万
展开全部
字符串一次性删除指定字符,参考及测试代码如下:
#include<stdio.h>
void del(char *s, char ch)
{
int i,j;
if(s==NULL)
return;
for(i=j=0;s[i]!='\0';++i)
if(s[i]!=ch) s[j++]=s[i];
s[j]='\0';
}
int main()
{
char s[100]="abcabcabc";
int i;
char a='a';
puts(s);
del(s, a);
printf("%s",s);
return 0;
}
追答

本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式