c语言求助 !急!!!

题目:编写一个函数voiddel(chars[],charc),其功能是在字符串s中删除所有与c中值相同的字符。程序如下:voiddel(chars[],charc){i... 题目:编写一个函数void del(char s[],char c),其功能是在字符串s中删除所有与c中值相同的字符。程序如下:
void del(chars[],char c)
{ int i,k=0;
for(i=0; s[i]!='\0';i++)
if(s[i]!=c)
s[k++]=s[i];
s[k]='\0';
}
为什么是s[k++]=s[i],初学者对ascll码表不是很了解,网上查到k在i后两位,不明白什么意思,而且对题目在字符串s中删除所有与c中值相同的字符该怎样理解,着急,求助!
展开
 我来答
fr6102499
2018-05-09 · 知道合伙人软件行家
fr6102499
知道合伙人软件行家
采纳数:25 获赞数:104
TP-LINK优秀员工,现瑞晟微电子(苏州)资深软件开发工程师

向TA提问 私信TA
展开全部
这个和k和i在ASCII码表中的位置无关,在这里k和i只是两个变量名。这个函数的方式是逐个比较字符串s中的字符,判断是否与c值相同,如果不相同则保留,相同则删除。
更多追问追答
追问
if(s[i]!=c)
s[k++]=s[i];
s[k]='\0';
}
是如果字符串s中的字符与c的值相同,把字符赋给s[k],添加结束符,那s[k]中就有c和结束符,s[]中被去除了吗,是这个意思吗。。不好意思还是不太明白。。
追答
你理解反了,字符串s中的字符与c的值不相同,把字符赋给s[k],添加结束符,最终保留的s中就没有与c相同的字符了。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式