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中值相同的字符该怎样理解,着急,求助! 展开
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中值相同的字符该怎样理解,着急,求助! 展开
1个回答
2018-05-09 · 知道合伙人软件行家
关注
展开全部
这个和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相同的字符了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询