这个c语言自定义函数的我没看懂,不知道i,j 都代表什么?str[i]!='\0'和 str[j++]=str[i]; 是什么意思?

#include"stdio.h"voidenter_string(charstr[],charch){inti,j;for(i=j=0;str[i]!='\0';i++... #include"stdio.h"
void enter_string(char str[],char ch)
{
int i,j;
for(i=j=0;str[i]!='\0';i++)
if(srt[i]!=ch)
str[j++]=str[i];
srr[j]='\0';
}
展开
 我来答
宇文淮海
2011-03-05
知道答主
回答量:17
采纳率:0%
帮助的人:0
展开全部
这种写法很恶心
str[j++]=str[i];
相当于
str[j] = str[i];
然后
j = j + 1;
这两步

str[i]!='\0'
这句
如果是str[i] == '\0';
就表示这个字符是字符串的末尾了
'\0'是字符串尾部标志
str[i]!='\0'
一般作为while语句的条件判断语句
表示下面语句块{}
循环结束的标志
william_shy
2011-03-05 · TA获得超过151个赞
知道答主
回答量:113
采纳率:0%
帮助的人:0
展开全部
int i,j;
定义i,j为整型数据,在for 循环i=j=0里面设置其初始值为0;
str[i]!='\0' 如果没有到字符串结尾
下面if再判读str的第i个字符是否等于ch,
如果不等于就把str的第i个字符赋值给str的第j++ 个字符否则就把str的第0个字符赋值为'\0'即字符结尾。

作用:发现字符串中如果含有指定字符就从截断
enter_string("abc",'a')
结果就是abc字符串就成了空白了。
enter_string("abc",'b')
结果就是abc字符串就成了a。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Ridiculous1227
2011-03-05 · 超过11用户采纳过TA的回答
知道答主
回答量:33
采纳率:0%
帮助的人:21.6万
展开全部
字符串str和字符ch都是函数的接收参数,i、j是计数器初始为0,循环条件是str数组不结束('\0'是字符串的结束标志),每循环一次i递增1,也就是看字符串的下一个字符,当它不是ch的时候,就进行赋值。我认为这当中srt和srr打错了,或者有语句缺漏,任何变量都是不能不声明就使用的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
15037309176
2011-03-05
知道答主
回答量:18
采纳率:0%
帮助的人:0
展开全部
str[i]!='\0'是判断句 表示如果i的值不等于字符\0,那么i++.
str[j++]=str[i]; 代表把i的值赋给str[j+1]
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chiconysun
2011-03-05 · TA获得超过2.2万个赞
知道大有可为答主
回答量:5410
采纳率:92%
帮助的人:2547万
展开全部
用循环去掉str中所有为ch的字符,程序中有点错,不是srt[i]!=ch,而是str[i]!=ch
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式