c语言删除语句s[j++]=s[i];s[j]='\0',我不太懂,解释一下 5

 我来答
金色潜鸟
2014-04-06 · TA获得超过3.2万个赞
知道大有可为答主
回答量:1.3万
采纳率:89%
帮助的人:5985万
展开全部
j++ 是后加加。表达式里j 不自增,出了表达式再自增1。
所以
s[j++]=s[i]; s[j]='\0';
可以按步写成 s[j]=s[i]; j=j+1; s[j]='\0'。

所谓删除,是指字符串里发生的事。 s[j]='\0' ;也就是把字符串结束符 放在 s[j] 位置,这样字符串 s 有效字符串只算到s[ j] 以前, 后面的字符不起作用了。等于删除了。 例如:
char s[12]="abcde12345"; // 原来的字符串
int j=2,i=9;
printf("%s\n",s); // 输出原来的字符串 abcde12345
s[j]=s[i]; // 把s[9] 放到 s[2] -- 字符c 变字符 5
printf("%s\n",s);
j=j+1;
s[j]='\0'; // 删除 s[j] 以后的
printf("%s\n",s);
执行上面语句,输出为:
abcde12345
ab5de12345
ab5
等于删除了 cde1234
千锋教育
2015-11-27 · 做真实的自己 用良心做教育
千锋教育
千锋教育专注HTML5大前端、JavaEE、Python、人工智能、UI&UE、云计算、全栈软件测试、大数据、物联网+嵌入式、Unity游戏开发、网络安全、互联网营销、Go语言等培训教育。
向TA提问
展开全部

这是一个追加字符的表达式  ,用来想一个字符串最后添加字符

比如 :

char s[10]="123"
int j=3
int i=0;
s[j++]=s[i];s[j]='\0'//此句运行完后s=="1231"
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
蜀山一只瓜
2014-04-05
知道答主
回答量:15
采纳率:0%
帮助的人:6.8万
展开全部
j++的运算完成是在该运算所在的小程序块完成后才发生的,也就是说,
把s[i]赋给s[j++]时,j自加的运算还没有发生,如果是++j的话,就是立刻加一,再参与之后的运算。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
刘江涛now
2014-04-05
知道答主
回答量:5
采纳率:0%
帮助的人:3万
展开全部
现将s[i]中的值移入s[j]中,j自加1,然后将其中的值替换为结束符,原s[j]中的值就被删除了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
男神发型穿着健身
2014-04-05
知道答主
回答量:47
采纳率:0%
帮助的人:15.3万
展开全部
s[j]=s[i];然后句末j++ (就是j+1的意思)
'\0' 是字符串的结束符,任何字符串之后都会自动加上'\0'
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式